/* dt-town-pop */
:root{
  --dt-pin-blue:#1e40af;
  --dt-pin-red:#ef4444;
  --dt-pin-green:#22c55e;
  --dt-pin-orange:#f97316;
  --dt-pin-purple:#a855f7;
  --dt-pin-cyan:#06b6d4;
  --dt-pin-lime:#84cc16;
  --dt-pin-pink:#ec4899;
  --dt-pin-brown:#92400e;
  --dt-pin-gold:#eab308;
  --dt-pin-teal:#14b8a6;
  --dt-pin-indigo:#6366f1;
  --dt-pin-gray:#6b7280;
  --dt-cat-cafe:#92400e;
  --dt-cat-gourmet:#ef4444;
  --dt-cat-shopping:#ec4899;
  --dt-cat-rest-stop:#6b7280;
  --dt-cat-rest:#6b7280;
  --dt-cat-activity:#f97316;
  --dt-cat-stay:#a855f7;
  --dt-cat-market-street:#84cc16;
  --dt-cat-market:#84cc16;
  --dt-cat-culture-art:#6366f1;
  --dt-cat-culture:#6366f1;
  --dt-cat-hot-spring:#14b8a6;
  --dt-cat-onsen:#14b8a6;
  --dt-cat-nature-park:#22c55e;
  --dt-cat-nature:#22c55e;
  --dt-cat-sightseeing:#1e40af;
  --dt-cat-sight:#1e40af;
  --dt-cat-roadside-station:#eab308;
  --dt-cat-roadside:#eab308;
}
/* ============================================================
   Town Pop — 01 色 / 02 書体 / 03 形と影
   ------------------------------------------------------------
   カテゴリ12色（--dt-cat-*）とピン色（--dt-pin-*）は
   このファイルの PHP がタームから生成して別途出力する。
   ============================================================ */
:root{
  /* 地・文字 */
  --dt-bg:#FFF8EC;
  --dt-bg-soft:#FFF3DC;
  --dt-text:#3B2A18;
  --dt-body:#5A4630;
  --dt-muted:#8B7758;
  --dt-border:#EDD9B4;
  --dt-divider:#EDE0C8;
  --dt-shadow-color:#EDD9B4;

  /* ずらし影（ぼかさない＝シールの手触り） */
  --dt-shadow:4px 4px 0 var(--dt-shadow-color);
  --dt-shadow-strong:5px 5px 0 var(--dt-shadow-color);

  /* 形 */
  --dt-radius:18px;
  --dt-radius-card:20px;
  --dt-radius-photo:13px;
  --dt-radius-pill:999px;
  --dt-place-card-radius:13px;

  /* ブランド（UIの色。カテゴリ色ではない） */
  --dt-green:#5FA82B;   /* 主要CTA・営業中 */
  --dt-red:#E23A2E;     /* 要対応 */
  --dt-blue:#1B9CE8;    /* 補助 */
  --dt-blue-dark:#1580c2;
  --dt-brown:#8B7758;   /* 補助文字 */
  --dt-accent:var(--dt-green);

  /* 書体 */
  --dt-font-body:"Zen Maru Gothic","Hiragino Maru Gothic ProN",-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif;
  --dt-font-heading:var(--dt-font-body);
  --dt-font-ui:var(--dt-font-body);
  --dt-font-num:"Outfit",var(--dt-font-body);
}

body{ color:var(--dt-body); background:var(--dt-bg); }
h1,h2,h3,h4,.dt-card-title{ color:var(--dt-text); font-weight:900; }
.dt-card-title{ font-weight:700; }

/* 数字とロゴは Outfit */
.dt-stars,.dt-rating span,.dt-card-summary .dt-rating,
.dt-results-bar > p,.dt-price,.dt-count{ font-family:var(--dt-font-num); font-weight:600; }

/* ヒーローのグラデーションを廃止（装飾で色を足さない） */
.dt-hero{ background:var(--dt-bg-soft); }
.dt-page-header{ background:var(--dt-bg-soft); border-bottom:2px solid var(--dt-border); }
.dt-section-muted{ background:var(--dt-bg-soft); }
.dt-kicker{ color:var(--dt-muted); }

/* ---- 03 形と影：標準カード＝枠2px こげ茶＋影4px 4px --------------- */
.dt-listing-card{
  background:#fff;
  border:2px solid var(--dt-text);
  border-radius:var(--dt-radius-card);
  box-shadow:var(--dt-shadow);
  transition:transform .14s ease, box-shadow .14s ease;
}
.dt-listing-card:hover{
  transform:translate(-1px,-1px);
  border-color:var(--dt-text);
  box-shadow:var(--dt-shadow-strong);
}
.dt-listing-card.is-map-hover,
.dt-listing-card.is-map-active{
  outline:none;
  border-width:3px;
  box-shadow:var(--dt-shadow-strong);
}
.dt-empty{
  background:#fff; border:2px dashed #DCC9AC; border-radius:var(--dt-radius-card); box-shadow:none;
}

/* 写真・プレースホルダの角丸 */
.dt-card-image,.dt-card-image img,.dt-card-placeholder{ border-radius:var(--dt-radius-photo); }

/* ---- 04 部品：ボタン ---------------------------------------------- */
.dt-button{
  min-height:44px;
  border-radius:var(--dt-radius-pill);
  background:var(--dt-green);
  border:2px solid var(--dt-text);
  box-shadow:3px 3px 0 var(--dt-text);
  color:#fff;
  font-weight:700;
  font-family:var(--dt-font-ui) !important;
}
.dt-button:hover{ background:#54941f; transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--dt-text); color:#fff; }
.dt-button:active{ transform:translate(1px,1px); box-shadow:2px 2px 0 var(--dt-text); }
.dt-button-outline{ background:#fff; color:var(--dt-text); }
.dt-button-outline:hover{ background:var(--dt-bg-soft); color:var(--dt-text); }
.dt-button-accent{ background:var(--dt-green); border-color:var(--dt-text); }

/* リンク色はこげ茶（青リンクを廃止して面の色数を減らす） */
a{ color:var(--dt-text); }
a:hover{ color:#000; }

/* ---- チップ・状態 ------------------------------------------------- */
.dt-card-tax-badge{
  border-radius:var(--dt-radius-pill);
  border:2px solid var(--dt-text);
  background:#fff;
  color:var(--dt-text);
  font-weight:700;
}
.dt-card-tax-category{ border-color:var(--dt-text); background:var(--dt-bg-soft); color:var(--dt-text); }
.dt-card-tax-place-tag{ border-color:var(--dt-border); background:#fff; color:var(--dt-body); }

.dt-business-status{ border-radius:var(--dt-radius-pill); font-weight:700; }

/* お気に入りボタン：ぼかし影と半透明黒を廃止 */
.dt-card-favorite-button{
  background:#fff; color:var(--dt-text) !important;
  border:2px solid var(--dt-text); box-shadow:2px 2px 0 var(--dt-text);
  backdrop-filter:none;
}
.dt-card-favorite-button:hover{ background:var(--dt-bg-soft); }
.dt-card-favorite-button.is-favorite{ background:var(--dt-red); color:#fff !important; }

/* ============================================================
   写真未入稿プレースホルダ
   色の割り当ては色「名」ベース（テーマPHP側が --{color} クラスを付ける）。
   hex は下の PHP が地図ピンの表から出す。
   ============================================================ */
.dt-card-placeholder{
  background:linear-gradient(150deg,
    var(--ph-c1,#8B7758),
    color-mix(in oklab, var(--ph-c1,#8B7758) 62%, #ffffff)) !important;
}
.dt-card-placeholder-initial{
  font-family:var(--dt-font-body);
  font-weight:900;
}

/* ============================================================
   運営・オーナー画面：密度優先（枠1px・角丸8-12px・影なし・Zen Kaku）
   ============================================================ */
body.dt-owner-dashboard, body.dt-admin-dashboard,
.dt-owner-dashboard, .dt-admin-review{
  font-family:"Zen Kaku Gothic New",var(--dt-font-body);
}
.dt-owner-dashboard .dt-listing-card,
.dt-admin-review .dt-listing-card{
  border-width:1px; border-color:var(--dt-border);
  border-radius:10px; box-shadow:none;
}.dt-card-placeholder--blue{ --ph-c1:#1e40af; }
.dt-card-placeholder--red{ --ph-c1:#ef4444; }
.dt-card-placeholder--green{ --ph-c1:#22c55e; }
.dt-card-placeholder--orange{ --ph-c1:#f97316; }
.dt-card-placeholder--purple{ --ph-c1:#a855f7; }
.dt-card-placeholder--cyan{ --ph-c1:#06b6d4; }
.dt-card-placeholder--lime{ --ph-c1:#84cc16; }
.dt-card-placeholder--pink{ --ph-c1:#ec4899; }
.dt-card-placeholder--brown{ --ph-c1:#92400e; }
.dt-card-placeholder--gold{ --ph-c1:#eab308; }
.dt-card-placeholder--teal{ --ph-c1:#14b8a6; }
.dt-card-placeholder--indigo{ --ph-c1:#6366f1; }
.dt-card-placeholder--gray{ --ph-c1:#6b7280; }

/* dt-town-pop-cards */

/* ============================================================
   一覧カード → Town Pop（白いカード・枠2px・ずらし影・文字は写真の下）
   ============================================================ */
.dt-archive-results[data-dt-card-view="grid"] .dt-listing-card,.dt-archive-results[data-dt-card-view="list"] .dt-listing-card,.dt-archive-results:not([data-dt-card-view]) .dt-listing-card,.tp-card-row .dt-listing-card,.tp-art-places-grid .dt-listing-card{
  background:#fff;
  border:2px solid var(--dt-text);
  border-radius:var(--dt-radius-card);
  box-shadow:var(--dt-shadow);
  overflow:hidden;
  transition:transform .14s ease, box-shadow .14s ease;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-listing-card:hover,.dt-archive-results[data-dt-card-view="list"] .dt-listing-card:hover,.dt-archive-results:not([data-dt-card-view]) .dt-listing-card:hover,.tp-card-row .dt-listing-card:hover,.tp-art-places-grid .dt-listing-card:hover{
  transform:translate(-1px,-1px);
  box-shadow:var(--dt-shadow-strong);
}
.dt-archive-results[data-dt-card-view="grid"] .dt-listing-card.is-map-hover,.dt-archive-results[data-dt-card-view="list"] .dt-listing-card.is-map-hover,.dt-archive-results:not([data-dt-card-view]) .dt-listing-card.is-map-hover,.tp-card-row .dt-listing-card.is-map-hover,.tp-art-places-grid .dt-listing-card.is-map-hover,
.dt-archive-results[data-dt-card-view="grid"] .dt-listing-card.is-map-active,.dt-archive-results[data-dt-card-view="list"] .dt-listing-card.is-map-active,.dt-archive-results:not([data-dt-card-view]) .dt-listing-card.is-map-active,.tp-card-row .dt-listing-card.is-map-active,.tp-art-places-grid .dt-listing-card.is-map-active{
  border-width:3px;
  box-shadow:var(--dt-shadow-strong);
  outline:none;
}

/* 画像面：濃紺の地と暗いオーバーレイをやめる */
.dt-archive-results[data-dt-card-view="grid"] .dt-card-image-wrap,.dt-archive-results[data-dt-card-view="list"] .dt-card-image-wrap,.dt-archive-results:not([data-dt-card-view]) .dt-card-image-wrap,.tp-card-row .dt-card-image-wrap,.tp-art-places-grid .dt-card-image-wrap{
  background:var(--dt-bg-soft);
  border-bottom:2px solid var(--dt-text);
  border-radius:0;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-card-image,.dt-archive-results[data-dt-card-view="list"] .dt-card-image,.dt-archive-results:not([data-dt-card-view]) .dt-card-image,.tp-card-row .dt-card-image,.tp-art-places-grid .dt-card-image{ border-radius:0; }
.dt-archive-results[data-dt-card-view="grid"] .dt-card-image::after,.dt-archive-results[data-dt-card-view="list"] .dt-card-image::after,.dt-archive-results:not([data-dt-card-view]) .dt-card-image::after,.tp-card-row .dt-card-image::after,.tp-art-places-grid .dt-card-image::after{ content:none; display:none; }

/* 本文：絶対配置を解いて写真の下へ */
.dt-archive-results[data-dt-card-view="grid"] .dt-card-body,.dt-archive-results[data-dt-card-view="list"] .dt-card-body,.dt-archive-results:not([data-dt-card-view]) .dt-card-body,.tp-card-row .dt-card-body,.tp-art-places-grid .dt-card-body{
  position:static;
  inset:auto;
  z-index:auto;
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:12px 13px 13px;
  color:var(--dt-body);
  background:#fff;
}

/* カテゴリチップ：写真の上の青ピル → 本文内の白チップ */
.dt-archive-results[data-dt-card-view="grid"] .dt-card-meta,.dt-archive-results[data-dt-card-view="list"] .dt-card-meta,.dt-archive-results:not([data-dt-card-view]) .dt-card-meta,.tp-card-row .dt-card-meta,.tp-art-places-grid .dt-card-meta{
  position:static;
  top:auto; left:auto; right:auto;
  margin:0;
  gap:5px;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-card-meta a,.dt-archive-results[data-dt-card-view="list"] .dt-card-meta a,.dt-archive-results:not([data-dt-card-view]) .dt-card-meta a,.tp-card-row .dt-card-meta a,.tp-art-places-grid .dt-card-meta a,
.dt-archive-results[data-dt-card-view="grid"] .dt-card-tax-category,.dt-archive-results[data-dt-card-view="list"] .dt-card-tax-category,.dt-archive-results:not([data-dt-card-view]) .dt-card-tax-category,.tp-card-row .dt-card-tax-category,.tp-art-places-grid .dt-card-tax-category{
  background:var(--dt-bg-soft);
  color:var(--dt-text);
  border:1.5px solid var(--dt-text);
  box-shadow:none;
  font-weight:700;
}

/* 見出し・本文の色を反転（白文字 → こげ茶） */
.dt-archive-results[data-dt-card-view="grid"] .dt-card-body .dt-card-title,.dt-archive-results[data-dt-card-view="list"] .dt-card-body .dt-card-title,.dt-archive-results:not([data-dt-card-view]) .dt-card-body .dt-card-title,.tp-card-row .dt-card-body .dt-card-title,.tp-art-places-grid .dt-card-body .dt-card-title,
.dt-archive-results[data-dt-card-view="grid"] .dt-card-body .dt-card-title a,.dt-archive-results[data-dt-card-view="list"] .dt-card-body .dt-card-title a,.dt-archive-results:not([data-dt-card-view]) .dt-card-body .dt-card-title a,.tp-card-row .dt-card-body .dt-card-title a,.tp-art-places-grid .dt-card-body .dt-card-title a{
  color:var(--dt-text);
  font-weight:700;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-card-body .dt-card-address,.dt-archive-results[data-dt-card-view="list"] .dt-card-body .dt-card-address,.dt-archive-results:not([data-dt-card-view]) .dt-card-body .dt-card-address,.tp-card-row .dt-card-body .dt-card-address,.tp-art-places-grid .dt-card-body .dt-card-address,
.dt-archive-results[data-dt-card-view="grid"] .dt-card-summary,.dt-archive-results[data-dt-card-view="list"] .dt-card-summary,.dt-archive-results:not([data-dt-card-view]) .dt-card-summary,.tp-card-row .dt-card-summary,.tp-art-places-grid .dt-card-summary{ color:var(--dt-body); }
.dt-archive-results[data-dt-card-view="grid"] .dt-rating span:not(.dt-stars),.dt-archive-results[data-dt-card-view="list"] .dt-rating span:not(.dt-stars),.dt-archive-results:not([data-dt-card-view]) .dt-rating span:not(.dt-stars),.tp-card-row .dt-rating span:not(.dt-stars),.tp-art-places-grid .dt-rating span:not(.dt-stars){ color:var(--dt-muted); }
.dt-archive-results[data-dt-card-view="grid"] .dt-stars,.dt-archive-results[data-dt-card-view="list"] .dt-stars,.dt-archive-results:not([data-dt-card-view]) .dt-stars,.tp-card-row .dt-stars,.tp-art-places-grid .dt-stars{ color:#E0A21C; }

/* 状態チップ：暗背景前提 → 明背景前提 */
.dt-archive-results[data-dt-card-view="grid"] .dt-business-status,.dt-archive-results[data-dt-card-view="list"] .dt-business-status,.dt-archive-results:not([data-dt-card-view]) .dt-business-status,.tp-card-row .dt-business-status,.tp-art-places-grid .dt-business-status{
  border:1.5px solid currentColor;
  border-radius:999px;
  font-weight:700;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-business-status-open,.dt-archive-results[data-dt-card-view="list"] .dt-business-status-open,.dt-archive-results:not([data-dt-card-view]) .dt-business-status-open,.tp-card-row .dt-business-status-open,.tp-art-places-grid .dt-business-status-open{ background:#EEF7E6; color:#3F7A17; border-color:#8FC46A; }
.dt-archive-results[data-dt-card-view="grid"] .dt-business-status-closed,.dt-archive-results[data-dt-card-view="list"] .dt-business-status-closed,.dt-archive-results:not([data-dt-card-view]) .dt-business-status-closed,.tp-card-row .dt-business-status-closed,.tp-art-places-grid .dt-business-status-closed{ background:var(--dt-bg-soft); color:var(--dt-muted); border-color:var(--dt-border); }
.dt-archive-results[data-dt-card-view="grid"] .dt-business-status-break,.dt-archive-results[data-dt-card-view="list"] .dt-business-status-break,.dt-archive-results:not([data-dt-card-view]) .dt-business-status-break,.tp-card-row .dt-business-status-break,.tp-art-places-grid .dt-business-status-break{ background:#FDECEA; color:#B02D22; border-color:#E9928A; }
.dt-archive-results[data-dt-card-view="grid"] .dt-business-status-unknown,.dt-archive-results[data-dt-card-view="list"] .dt-business-status-unknown,.dt-archive-results:not([data-dt-card-view]) .dt-business-status-unknown,.tp-card-row .dt-business-status-unknown,.tp-art-places-grid .dt-business-status-unknown{ background:var(--dt-bg-soft); color:var(--dt-muted); border-color:var(--dt-border); }

/* お気に入り：半透明黒とぼかし影をやめる */
.dt-archive-results[data-dt-card-view="grid"] .dt-card-image-wrap .dt-card-favorite-button,.dt-archive-results[data-dt-card-view="list"] .dt-card-image-wrap .dt-card-favorite-button,.dt-archive-results:not([data-dt-card-view]) .dt-card-image-wrap .dt-card-favorite-button,.tp-card-row .dt-card-image-wrap .dt-card-favorite-button,.tp-art-places-grid .dt-card-image-wrap .dt-card-favorite-button{
  background:#fff;
  color:var(--dt-text) !important;
  border:2px solid var(--dt-text);
  box-shadow:2px 2px 0 var(--dt-text);
  backdrop-filter:none;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-card-image-wrap .dt-card-favorite-button.is-favorite,.dt-archive-results[data-dt-card-view="list"] .dt-card-image-wrap .dt-card-favorite-button.is-favorite,.dt-archive-results:not([data-dt-card-view]) .dt-card-image-wrap .dt-card-favorite-button.is-favorite,.tp-card-row .dt-card-image-wrap .dt-card-favorite-button.is-favorite,.tp-art-places-grid .dt-card-image-wrap .dt-card-favorite-button.is-favorite{
  background:var(--dt-red);
  color:#fff !important;
}

/* ============================================================
   写真未入稿：明るい面になったので斜線プレースホルダを入れる
   （スタイルガイド 04「未入稿はカテゴリ系統の色で斜線プレースホルダ」）
   ============================================================ */
.dt-archive-results[data-dt-card-view="grid"] .dt-card-placeholder,.dt-archive-results[data-dt-card-view="list"] .dt-card-placeholder,.dt-archive-results:not([data-dt-card-view]) .dt-card-placeholder,.tp-card-row .dt-card-placeholder,.tp-art-places-grid .dt-card-placeholder{
  background:
    repeating-linear-gradient(135deg,
      color-mix(in oklab, var(--ph-c1,#8B7758) 58%, #FFF8EC) 0 6px,
      transparent 6px 15px),
    var(--dt-bg-soft) !important;
  border-radius:0;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-card-placeholder-initial,.dt-archive-results[data-dt-card-view="list"] .dt-card-placeholder-initial,.dt-archive-results:not([data-dt-card-view]) .dt-card-placeholder-initial,.tp-card-row .dt-card-placeholder-initial,.tp-art-places-grid .dt-card-placeholder-initial{
  color:rgba(59,42,24,.17);
  text-shadow:none;
  font-family:var(--dt-font-body);
  font-weight:900;
}
.dt-archive-results[data-dt-card-view="grid"] .dt-card-placeholder-icon,.dt-archive-results[data-dt-card-view="list"] .dt-card-placeholder-icon,.dt-archive-results:not([data-dt-card-view]) .dt-card-placeholder-icon,.tp-card-row .dt-card-placeholder-icon,.tp-art-places-grid .dt-card-placeholder-icon{
  color:var(--dt-text);
  opacity:.13;
}

/* dt-town-pop-chrome */
/* ============================================================
   ヘッダー：こげ茶の反転面 → 生成り地（デザイン01/03/04）
   ============================================================ */
.dt-site-header{
  background:var(--dt-bg-soft) !important;
  border-bottom:2px solid var(--dt-text) !important;
  box-shadow:none !important;
}
.dt-site-header .dt-header-inner{ align-items:center; }

/* ---- カスタムロゴ（濃色版）はそのまま。横長の組みロゴなので高さで揃える ---- */
.dt-site-header .dt-site-branding .custom-logo-link{ display:inline-block; line-height:0; }
.dt-site-header .dt-site-branding .custom-logo{
  height:clamp(40px,4.4vw,56px) !important;
  width:auto !important;
  max-width:min(300px,42vw) !important;
  max-height:none !important;
  object-fit:contain;
  visibility:visible !important;
}

/* ---- ナビ：白文字 → こげ茶 ---- */
.dt-site-header .dt-site-title,
.dt-site-header .dt-menu a,
.dt-site-header .dt-primary-nav a:not(.dt-header-recommend-link),
.dt-site-header .dt-menu-parent-row a,
.dt-site-header .dt-submenu-toggle{
  color:var(--dt-text) !important;
}
.dt-site-header .dt-menu a{ font-weight:700; }
.dt-site-header .dt-menu a:hover{ color:#000 !important; opacity:1; text-decoration:underline; }
.dt-site-header .dt-submenu-toggle{ background:transparent !important; border:0 !important; }

/* ---- 主要CTA「お店を推薦」：緑のピル（1画面に緑は1つ） ---- */
.dt-site-header .dt-header-recommend-link,
body.home .dt-header-recommend-link,
body.front-page .dt-header-recommend-link,
.dt-primary-nav.is-open .dt-header-recommend-link{
  background:var(--dt-green) !important;
  color:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:999px !important;
  box-shadow:2px 2px 0 var(--dt-text) !important;
  font-weight:700 !important;
}
.dt-site-header .dt-header-recommend-link:hover,
.dt-site-header .dt-header-recommend-link:focus{
  background:#54941f !important; color:#fff !important;
}

/* ---- 副ボタン：白地＋こげ茶の枠線ピル ---- */
.dt-site-header .dt-primary-nav .dt-header-login-link,
.dt-site-header .dt-primary-nav .dt-header-language-link,
.dt-site-header .dt-primary-nav .dt-header-user-status,
body.home .dt-header-login-link,
body.home .dt-header-language-link,
body.front-page .dt-header-login-link,
body.front-page .dt-header-language-link{
  background:#fff !important;
  color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important;
  border-radius:999px !important;
  box-shadow:none !important;
  font-weight:700 !important;
}
.dt-site-header .dt-primary-nav .dt-header-login-link:hover,
.dt-site-header .dt-primary-nav .dt-header-login-link:focus,
.dt-site-header .dt-primary-nav .dt-header-language-link:hover,
.dt-site-header .dt-primary-nav .dt-header-language-link:focus,
.dt-site-header .dt-primary-nav .dt-header-user-status:hover{
  background:var(--dt-bg) !important;
  color:var(--dt-text) !important;
  border-color:var(--dt-text) !important;
}
/* 言語トグルの中の JA / EN は、選択中だけ濃く */
.dt-site-header .dt-header-language-codes{ color:var(--dt-muted) !important; font-family:var(--dt-font-num); }
.dt-site-header .dt-header-language-codes .is-current{ color:var(--dt-text) !important; font-weight:700; }
.dt-site-header .dt-header-language-separator{ color:var(--dt-border) !important; }
.dt-site-header .dt-lang-globe-icon{ color:var(--dt-text) !important; }

/* ---- ログイン中のアカウント表示 ---- */
.dt-site-header .dt-header-user-status-name{ color:var(--dt-text) !important; }
.dt-site-header .dt-header-user-status-role,
body.home .dt-header-user-status.is-owner .dt-header-user-status-role{
  background:var(--dt-text) !important;
  color:#FFF8EC !important;
}
.dt-site-header .dt-header-user-avatar{ border:1.5px solid var(--dt-text); border-radius:999px; }

/* ---- モバイルのメニューボタン・パネル ---- */
.dt-menu-toggle{
  border:2px solid var(--dt-text) !important;
  background:#fff !important;
  color:var(--dt-text) !important;
  border-radius:999px !important;
  box-shadow:none !important;
  font-weight:700 !important;
}
@media (max-width:900px){
  .dt-primary-nav{
    background:var(--dt-bg-soft) !important;
    border-top:2px solid var(--dt-border);
  }
  .dt-primary-nav a{ color:var(--dt-text) !important; }
  .dt-site-header .dt-site-branding .custom-logo{ height:38px !important; }
}

/* ---- ドロップダウン ---- */
.dt-sub-menu,
.dt-header-account-submenu{
  background:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:14px !important;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
}
.dt-sub-menu a,
.dt-header-account-submenu a{ color:var(--dt-text) !important; }
.dt-sub-menu a:hover,
.dt-sub-menu a:focus,
.dt-header-account-submenu a:hover,
.dt-header-account-submenu a:focus{
  background:var(--dt-bg-soft) !important;
  color:var(--dt-text) !important;
}

/* ============================================================
   フッター：こげ茶の反転面（デザインどおり据え置き）
   ============================================================ */
.dt-site-footer{ background:var(--dt-text) !important; color:#DCC9AC !important; }
.dt-footer-main{ background:var(--dt-text) !important; color:#DCC9AC !important; }
.dt-footer-bottom{ background:#2C1F12 !important; color:rgba(220,201,172,.78) !important; }
.dt-site-footer a,
.dt-footer-column a,
.dt-footer-brand p,
.dt-footer-bottom p{ color:#DCC9AC !important; }
.dt-site-footer a:hover{ color:#FFF8EC !important; }
.dt-footer-column strong,
.dt-footer-brand strong{ color:#FFF8EC !important; }
/* フッターは反転面なので、ロゴの塗り替えは効かせない */
.dt-site-footer .dt-default-logo,
.dt-site-footer .custom-logo{ visibility:visible !important; }
.dt-site-footer .dt-default-logo-link::after,
.dt-site-footer .custom-logo-link::after{ display:none !important; }
/* PC の地図つき一覧: テーマが隠すリンクの段を戻し、左の欄に収まるよう1列にする（Q-008・2026-10-10） */
@media (min-width:901px){
  body.dt-map-archive .dt-site-footer .dt-footer-main{ display:block !important; }
  body.dt-map-archive .dt-site-footer .dt-footer-main-inner{ grid-template-columns:1fr !important; gap:24px !important; }
}

/* 上へ戻るボタン */
.dt-scroll-top{
  background:#fff !important;
  color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important;
  box-shadow:2px 2px 0 var(--dt-text) !important;
}
.dt-scroll-top:hover,.dt-scroll-top:focus-visible{
  background:var(--dt-green) !important;
  color:#fff !important;
  border-color:var(--dt-text) !important;
}

/* dt-town-pop-forms */
/* ============================================================
   検索フォーム／絞り込みパネル
   ============================================================ */
.dt-search,
.dt-search-panel,
.dt-search-feature-group{
  background:#fff;
  border:2px solid var(--dt-text);
  border-radius:var(--dt-radius-card);
  box-shadow:var(--dt-shadow);
}
.dt-search input[type="search"],
.dt-search input[type="text"],
.dt-search select{
  border:2px solid var(--dt-border) !important;
  border-radius:12px !important;
  background:#fff !important;
  color:var(--dt-text) !important;
  font-family:var(--dt-font-body) !important;
  min-height:44px;
  box-shadow:none !important;
}
.dt-search input:focus,
.dt-search select:focus{
  border-color:var(--dt-text) !important;
  outline:none !important;
  box-shadow:2px 2px 0 var(--dt-shadow-color) !important;
}

/* 検索実行＝1画面に1つの緑 */
.dt-search button[type="submit"],
.dt-search .dt-search-submit{
  background:var(--dt-green) !important;
  color:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
  min-height:44px;
  font-weight:700 !important;
  font-family:var(--dt-font-ui) !important;
}
.dt-search button[type="submit"]:hover{ background:#54941f !important; }

/* 「現在地から探す」は副ボタン（白＋太枠） */
.dt-location-button{
  background:#fff !important;
  color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important;
  border-radius:999px !important;
  box-shadow:none !important;
  min-height:44px;
  font-weight:700 !important;
}
.dt-location-button:hover{ background:var(--dt-bg-soft) !important; }

/* 「条件で探す」トグル・タブ類 */
.dt-mobile-filter-toggle,
.dt-search-feature-tab,
.dt-search-panel-toggle{
  color:var(--dt-text) !important;
  font-family:var(--dt-font-ui) !important;
  font-weight:700 !important;
}
.dt-search-feature-tab{
  border:2px solid var(--dt-border) !important;
  border-radius:999px !important;
  background:#fff !important;
  box-shadow:none !important;
}
.dt-search-feature-tab.is-active,
.dt-search-feature-tab[aria-selected="true"]{
  background:var(--dt-bg-soft) !important;
  border-color:var(--dt-text) !important;
  color:var(--dt-text) !important;
}
.dt-search-feature-group{ box-shadow:none; border-width:2px; }

/* 残っているスレート系の文字色をこげ茶へ */
.dt-site-main label,
.dt-search label,
.dt-search-feature-group h4,
.dt-search-panel h4,
.dt-results-bar,
.dt-results-bar p{
  color:var(--dt-body) !important;
}
.dt-site-main h4{ color:var(--dt-text) !important; }

/* 表示切替（グリッド／リスト）とソート */
.dt-card-view-toggle button,
.dt-archive-sort select{
  border:2px solid var(--dt-text) !important;
  border-radius:999px !important;
  background:#fff !important;
  color:var(--dt-text) !important;
  box-shadow:none !important;
  font-family:var(--dt-font-ui) !important;
}
.dt-card-view-toggle button.is-active,
.dt-card-view-toggle button[aria-pressed="true"]{
  background:var(--dt-text) !important;
  color:#FFF8EC !important;
}
.dt-archive-sort select{ border-radius:12px !important; min-height:40px; }

/* 画像枠の地に濃紺が残っている箇所を潰す（プレースホルダの背後） */
.dt-card-image-wrap{ background:var(--dt-bg-soft) !important; }

/* ページネーション */
.navigation.pagination .page-numbers{
  border:2px solid var(--dt-border) !important;
  border-radius:999px !important;
  background:#fff !important;
  color:var(--dt-text) !important;
  font-family:var(--dt-font-num) !important;
  font-weight:600 !important;
}
.navigation.pagination .page-numbers.current{
  background:var(--dt-text) !important;
  color:#FFF8EC !important;
  border-color:var(--dt-text) !important;
}
/* dt-ux-fixes */
@media (max-width: 767px){
  .dt-scroll-top{
    width:44px !important; height:44px !important;
    right:12px !important; bottom:calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    transition:transform .25s ease, opacity .25s ease !important;
  }
  .dt-scroll-top.dt-ux-tucked{ transform:translateY(calc(100% + 24px)) !important; opacity:0 !important; pointer-events:none !important; }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce){
  .dt-scroll-top{ transition:none !important; }
}
/* トップの検索欄の例文（1.1.2） */
@media (max-width: 560px){
  .tp-search input{ text-overflow:ellipsis; }
  .tp-search input::placeholder{ font-size:12px; }
}
/* dt-ux-header */
.dt-ux-lang-clone{ display:none; }
.dt-menu-toggle .dt-ux-menu-mark{ display:none; }
/* ≡ の見た目はスマホ幅だけ（下の @media 内） */
@media (max-width:900px){
  .dt-site-header .dt-ux-lang-clone{
    display:inline-flex; align-items:center; gap:6px;
    margin-left:auto; margin-right:8px; padding:6px 12px;
    border:2px solid var(--dt-text); border-radius:999px;
    background:#fff; color:var(--dt-text); text-decoration:none;
    font-weight:700; font-size:13px; line-height:1;
  }
  .dt-site-header .dt-ux-lang-clone .dt-lang-globe-icon{ width:18px; height:18px; }
  .dt-menu-toggle .dt-ux-menu-word{ display:none; }
  /* ≡ は文字ではなく線3本で描く。枠・白背景・影・▼は外す。開くと × になる */
  .dt-site-header .dt-menu-toggle{
    display:inline-flex !important; align-items:center; justify-content:center;
    min-width:44px; min-height:44px; padding:8px !important;
    background:transparent !important; border:0 !important; box-shadow:none !important;
    color:var(--dt-text) !important;
  }
  .dt-site-header .dt-menu-toggle::after,
  .dt-site-header .dt-menu-toggle::before{ display:none !important; content:none !important; }
  .dt-menu-toggle .dt-ux-menu-mark{
    display:block; position:relative; width:24px; height:2.5px; font-size:0;
    background:currentColor; border-radius:2px;
    transition:background-color .18s ease;
  }
  .dt-menu-toggle .dt-ux-menu-mark::before,
  .dt-menu-toggle .dt-ux-menu-mark::after{
    content:""; position:absolute; left:0; width:24px; height:2.5px;
    background:currentColor; border-radius:2px;
    transition:transform .25s ease;
  }
  .dt-menu-toggle .dt-ux-menu-mark::before{ top:-7.5px; }
  .dt-menu-toggle .dt-ux-menu-mark::after{ top:7.5px; }
  .dt-menu-toggle[aria-expanded="true"] .dt-ux-menu-mark{ background-color:transparent; }
  .dt-menu-toggle[aria-expanded="true"] .dt-ux-menu-mark::before{ transform:translateY(7.5px) rotate(45deg); }
  .dt-menu-toggle[aria-expanded="true"] .dt-ux-menu-mark::after{ transform:translateY(-7.5px) rotate(-45deg); }
}
@media (max-width:900px){
  /* 途中まで読んだ所でメニューを開くと、ヘッダー（×）が画面の外に残っていた。開いている間だけ上に固定する */
  body.dt-ux-menu-fixed .dt-site-header{
    position:fixed !important; top:0; left:0; right:0; z-index:70;
    box-shadow:0 2px 0 var(--dt-border, rgba(0,0,0,.12));
  }
}
@media (max-width:900px) and (prefers-reduced-motion: reduce){
  .dt-menu-toggle .dt-ux-menu-mark,
  .dt-menu-toggle .dt-ux-menu-mark::before,
  .dt-menu-toggle .dt-ux-menu-mark::after{ transition:none; }
}
/* dt-town-pop-detail */
/* ============================================================
   共通パネル：薄枠＋ぼかし影 → 太枠＋ずらし影
   （コメント欄・写真投稿・オーナー引き継ぎが使っている）
   ============================================================ */
.dt-panel{
  background:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:20px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
  color:var(--dt-body) !important;
}
.dt-panel h2,.dt-panel h3,.dt-panel h4{ color:var(--dt-text) !important; }
.dt-panel .dt-content{ color:var(--dt-body) !important; }
.dt-taxonomy-badge{
  background:var(--dt-bg-soft) !important;
  color:var(--dt-text) !important;
  border:1.5px solid var(--dt-text) !important;
  border-radius:999px !important;
  font-weight:700 !important;
}
.dt-taxonomy-badge:hover{ background:#fff !important; }
.dt-panel .dt-button{
  border-radius:999px !important;
  border:2px solid var(--dt-text) !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
  min-height:44px;
  font-weight:700 !important;
}
.dt-panel .dt-button-outline{ background:#fff !important; color:var(--dt-text) !important; }
.dt-panel h2 svg,.dt-panel h3 svg{ color:var(--dt-text) !important; }

/* ============================================================
   詳細ページ（アートボード04）
   ============================================================ */
.tp-detail{ background:var(--dt-bg); }

/* ---- パンくず ---- */
.tp-breadcrumb{
  background:var(--dt-bg-soft);
  border-bottom:2px solid var(--dt-border);
}
.tp-breadcrumb-inner{
  display:flex; flex-wrap:wrap; align-items:center; gap:7px;
  padding:11px 0; font-size:12.5px; color:var(--dt-muted);
}
.tp-breadcrumb-inner a{ color:var(--dt-muted) !important; }
.tp-breadcrumb-inner a:hover{ color:var(--dt-text) !important; text-decoration:underline; }
.tp-crumb-sep{ color:var(--dt-border); }
.tp-crumb-current{ color:var(--dt-text); font-weight:700; }

/* ---- 写真グリッド（左大1・右2） ---- */
.tp-photo-wrap{ padding:22px 0 0; }
.tp-photo-grid{
  display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:14px;
}
.tp-photo-side{ display:grid; grid-template-rows:1fr 1fr; gap:14px; }
.tp-photo{
  position:relative; overflow:hidden;
  border:2px solid var(--dt-text) !important; border-radius:18px;
  background:var(--dt-bg-soft);
}
.tp-photo-main{ aspect-ratio:4/3; }
.tp-photo-sub{ min-height:0; }
.tp-photo img,
.tp-photo .tp-photo-img{ width:100%; height:100%; object-fit:cover; display:block; }
/* 未入稿はカテゴリ色の斜線（スタイルガイド04） */
.tp-photo .dt-card-placeholder{
  position:absolute; inset:0; width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  background:
    repeating-linear-gradient(135deg,
      color-mix(in oklab, var(--ph-c1,#8B7758) 40%, #FFF8EC) 0 7px,
      transparent 7px 18px),
    var(--dt-bg-soft) !important;
  border-radius:0;
}
/* 大きい面では頭文字とアイコンを出さない（デザイン04は斜線だけ） */
.tp-photo .dt-card-placeholder-initial,
.tp-photo .dt-card-placeholder-icon{ display:none !important; }

.tp-detail[data-tp-cat="gourmet"]          { --ph-c1:var(--dt-cat-gourmet); }
.tp-detail[data-tp-cat="cafe"]             { --ph-c1:var(--dt-cat-cafe); }
.tp-detail[data-tp-cat="sightseeing"]      { --ph-c1:var(--dt-cat-sight); }
.tp-detail[data-tp-cat="nature-park"]      { --ph-c1:var(--dt-cat-nature); }
.tp-detail[data-tp-cat="stay"]             { --ph-c1:var(--dt-cat-stay); }
.tp-detail[data-tp-cat="shopping"]         { --ph-c1:var(--dt-cat-shopping); }
.tp-detail[data-tp-cat="market-street"]    { --ph-c1:var(--dt-cat-market); }
.tp-detail[data-tp-cat="roadside-station"] { --ph-c1:var(--dt-cat-roadside); }
.tp-detail[data-tp-cat="activity"]         { --ph-c1:var(--dt-cat-activity); }
.tp-detail[data-tp-cat="hot-spring"]       { --ph-c1:var(--dt-cat-onsen); }
.tp-detail[data-tp-cat="culture-art"]      { --ph-c1:var(--dt-cat-culture); }
.tp-detail[data-tp-cat="rest-stop"]        { --ph-c1:var(--dt-cat-rest); }

.tp-photo-cat{
  position:absolute; top:14px; left:14px; z-index:2;
  display:inline-flex; align-items:center; padding:6px 14px;
  border-radius:999px; background:var(--ph-c1,var(--dt-text)); color:#fff;
  font-size:12px; font-weight:700; letter-spacing:.02em;
}
.tp-photo-all{
  position:absolute; right:12px; bottom:12px; z-index:2;
  display:inline-flex; align-items:center; gap:6px; min-height:38px; padding:0 16px;
  background:var(--dt-text); color:#FFF8EC !important; border-radius:999px;
  font-size:12.5px; font-weight:700;
}
.tp-photo-all span{ font-family:var(--dt-font-num); }
.tp-photo-all:hover{ text-decoration:none; opacity:.9; }

/* ---- 2カラム ---- */
.dt-container.dt-listing-layout.tp-detail-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 348px !important;
  gap:34px !important;
  align-items:start !important;
  padding-top:26px; padding-bottom:44px;
}
.tp-detail-side{ position:sticky; top:88px; display:flex; flex-direction:column; gap:16px; }

/* ---- 店名ブロック ---- */
.tp-title-block{ margin:0 0 26px; }
.tp-title-status{ margin-bottom:10px; }
.tp-title{
  margin:0 0 10px; font-size:clamp(28px,3.2vw,42px); font-weight:900;
  line-height:1.25; color:var(--dt-text);
}
.tp-title-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px;
  font-size:13px; color:var(--dt-muted);
}
.tp-title-meta > span{ display:inline-flex; align-items:center; gap:5px; }
.tp-title-meta > span + span::before{
  content:""; width:1px; height:13px; margin-right:9px; background:var(--dt-border);
}
.tp-title-rating strong{ font-family:var(--dt-font-num); color:var(--dt-text); font-weight:700; }
.tp-verified{
  padding:3px 10px; border-radius:999px; background:var(--dt-bg-soft);
  border:1.5px solid var(--dt-text); color:var(--dt-text); font-size:11px; font-weight:700;
}

/* ---- 特徴チップ ---- */
.tp-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.tp-chip{
  display:inline-flex; align-items:center; min-height:34px; padding:0 14px;
  background:#fff; color:var(--dt-text) !important;
  border:2px solid var(--dt-border); border-radius:999px;
  font-size:12.5px; font-weight:700;
}
.tp-chip:hover{ background:var(--dt-bg-soft); border-color:var(--dt-text); text-decoration:none; }

/* ---- 本文ブロック ---- */
.tp-block{ margin:0 0 30px; }
.tp-block > h2{
  margin:0 0 14px; font-size:clamp(18px,1.8vw,22px); font-weight:900; color:var(--dt-text);
}
.tp-about .dt-content{ color:var(--dt-body); line-height:2.05; font-size:15px; }
.tp-about .dt-content h3{ margin:26px 0 10px; font-size:16px; font-weight:900; color:var(--dt-text); }
.tp-about .dt-content ul{ padding-left:1.2em; }

/* ---- 推薦者コメント ---- */
.tp-recommend{
  display:flex; gap:16px; align-items:flex-start;
  margin:0 0 30px; padding:20px 22px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:20px;
}
.tp-recommend-avatar img,.tp-recommend-avatar .tp-recommend-img{
  width:52px; height:52px; border-radius:999px; display:block;
}
.tp-recommend-label{ margin:0 0 6px; font-size:12px; color:var(--dt-muted); font-weight:700; }
.tp-recommend-quote{
  margin:0 0 8px; padding:0; border:0;
  font-size:15px; line-height:1.9; color:var(--dt-text); font-weight:700;
}
.tp-recommend-name{ margin:0; font-size:12px; color:var(--dt-muted); }

/* ---- 基本情報テーブル ---- */
.tp-table{
  width:100%; border-collapse:separate; border-spacing:0;
  border:2px solid var(--dt-text); border-radius:18px; overflow:hidden;
  background:#fff; font-size:14px;
}
.tp-table th,.tp-table td{ padding:13px 16px; text-align:left; vertical-align:top; }
.tp-table th{
  width:132px; background:var(--dt-bg-soft); color:var(--dt-text);
  font-weight:700; white-space:nowrap;
  border-right:2px solid var(--dt-border);
}
.tp-table td{ color:var(--dt-body); }
.tp-table tr + tr th,.tp-table tr + tr td{ border-top:2px solid var(--dt-border); }
.tp-postal{ font-family:var(--dt-font-num); color:var(--dt-muted); font-size:12.5px; }
.tp-hours{ list-style:none; margin:0; padding:0; display:grid; gap:3px; }
.tp-hours li{ display:flex; gap:12px; align-items:baseline; }
.tp-hours-day{ width:2.2em; flex:0 0 auto; color:var(--dt-muted); font-weight:700; }
.tp-hours-val{ font-family:var(--dt-font-num); }
.tp-hours-val small{ font-family:var(--dt-font-body); color:var(--dt-muted); margin-left:6px; }

/* ---- レビュー（コメント欄はテーマの素の見た目のままだったので面を作る） ---- */
.tp-reviews{
  background:#fff; border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color); padding:22px 24px 26px;
}
.tp-reviews h2,.tp-reviews h3{ color:var(--dt-text); font-weight:900; }
.tp-reviews input[type="text"],
.tp-reviews input[type="email"],
.tp-reviews input[type="url"],
.tp-reviews textarea,
.tp-reviews select{
  width:100%; padding:10px 13px; background:#fff;
  border:2px solid var(--dt-border) !important; border-radius:12px !important;
  color:var(--dt-text); font-family:var(--dt-font-body); font-size:14px;
}
.tp-reviews input:focus,.tp-reviews textarea:focus,.tp-reviews select:focus{
  border-color:var(--dt-text) !important; outline:none;
}
.tp-reviews input[type="submit"],
.tp-reviews button[type="submit"],
.tp-reviews .submit{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:46px; padding:0 28px; width:auto;
  background:var(--dt-text) !important; color:#FFF8EC !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
  font-family:var(--dt-font-ui); font-weight:700 !important; font-size:14px; cursor:pointer;
}
.tp-reviews a{ color:var(--dt-text) !important; }

/* ---- サイドの行動パネル ---- */
.tp-side-panel{
  background:#fff; border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
  padding:18px 18px 20px;
}
.tp-side-panel > h2{
  margin:0 0 14px; font-size:16px; font-weight:900; color:var(--dt-text);
}
.tp-act,
.tp-action-panel .dt-button,
.tp-action-panel .dt-favorite-button{
  display:flex !important; align-items:center; justify-content:center;
  width:100%; min-height:46px; margin:0 0 10px; padding:0 18px;
  border-radius:999px !important; border:2px solid var(--dt-text) !important;
  font-weight:700 !important; font-size:14px; text-align:center;
  background:#fff; color:var(--dt-text) !important; box-shadow:none !important;
}
.tp-act:hover{ text-decoration:none; background:var(--dt-bg-soft); }
.tp-act-green{
  background:var(--dt-green) !important; color:#fff !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
}
.tp-act-green:hover{ background:#54941f !important; color:#fff !important; }
.tp-act-row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.tp-act-row > *{
  display:flex !important; align-items:center; justify-content:center;
  min-height:42px; margin:0 !important; padding:0 12px;
  background:var(--dt-bg-soft) !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-border) !important; border-radius:999px !important;
  font-size:13px; font-weight:700 !important; box-shadow:none !important;
}
.tp-act-row > *:hover{ background:#fff !important; text-decoration:none; }

/* ---- サイドの地図パネル ---- */
.tp-map{
  width:100%; height:190px; display:block; border:0;
  border-radius:14px; overflow:hidden; margin-bottom:12px;
  background:var(--dt-bg-soft);
}
.tp-map-address-main{ margin:0 0 4px; font-size:13px; color:var(--dt-text); font-weight:700; }
.tp-map-link{ font-size:12.5px; color:var(--dt-muted) !important; text-decoration:underline; }

/* ---- 近くの場所 ---- */
.tp-nearby-shell{ padding:6px 0 10px; }
.tp-nearby .tp-section-head{ margin-bottom:16px; }
.tp-nearby .tp-section-head h2{ margin:0; font-size:clamp(19px,2vw,24px); font-weight:900; color:var(--dt-text); }
.tp-nearby .tp-card-row{
  display:grid !important; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)) !important; gap:18px !important;
}
.tp-nearby .dt-listing-card{
  background:#fff !important; border:2px solid var(--dt-text) !important;
  border-radius:20px !important; box-shadow:4px 4px 0 var(--dt-shadow-color) !important; overflow:hidden;
}
.tp-nearby .dt-card-image-wrap{ border-bottom:2px solid var(--dt-text); background:var(--dt-bg-soft); }
.tp-nearby .dt-card-body{ position:static; inset:auto; padding:12px 13px 14px; background:#fff; color:var(--dt-body); }
.tp-nearby .dt-card-title,.tp-nearby .dt-card-title a{ color:var(--dt-text) !important; }

/* ---- 下部CTA ---- */
.tp-detail-cta-wrap{ padding:14px 0 56px; }
.tp-detail-cta{
  display:flex; align-items:center; justify-content:space-between; gap:28px;
  padding:30px 36px; background:var(--dt-text); border-radius:22px;
}
.tp-detail-cta h2{ margin:0 0 6px; font-size:20px; font-weight:900; color:#FFF8EC; }
.tp-detail-cta p{ margin:0; font-size:13px; color:#DCC9AC; line-height:1.7; }
.tp-detail-cta .tp-btn-green{
  flex:0 0 auto; display:inline-flex; align-items:center; min-height:46px; padding:0 26px;
  background:var(--dt-green); color:#fff !important; border:2px solid #FFF8EC;
  border-radius:999px; font-weight:700; font-size:14px;
}
.tp-detail-cta .tp-btn-green:hover{ background:#54941f; text-decoration:none; }

/* ---- レスポンシブ ---- */
@media (max-width:1024px){
  .dt-container.dt-listing-layout.tp-detail-layout{ grid-template-columns:1fr !important; gap:24px !important; }
  .tp-detail-side{ position:static; }
  .tp-nearby .tp-card-row{ grid-template-columns:repeat(auto-fill,minmax(220px,1fr)) !important; }
}
@media (max-width:640px){
  .tp-photo-grid{ grid-template-columns:1fr; }
  .tp-photo-side{ grid-template-columns:1fr 1fr; grid-template-rows:none; }
  .tp-photo-main{ aspect-ratio:4/3; }
  .tp-photo-sub{ aspect-ratio:4/3; }
  .tp-table th{ width:96px; padding:11px 12px; }
  .tp-table td{ padding:11px 12px; }
  .tp-nearby .tp-card-row{ grid-template-columns:1fr !important; }
  .tp-detail-cta{ flex-direction:column; align-items:flex-start; padding:24px 22px; }
}
/* dt-ux-type */
:root{
  --dt-font-display:"Zen Maru Gothic","Hiragino Maru Gothic ProN",-apple-system,BlinkMacSystemFont,sans-serif;
  --dt-font-body:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  --dt-font-heading:var(--dt-font-display);
  --dt-font-ui:var(--dt-font-display);
}
body{ font-family:var(--dt-font-body); }
h1,h2,h3,h4,h5,
.dt-card-title,.dt-kicker,.dt-section-head h2,
.dt-site-header,.dt-menu-toggle,.dt-primary-nav,
.dt-button,.dt-archive-tab,.tp-fb-toggle,.dt-site-footer .dt-footer-brand{
  font-family:var(--dt-font-display);
}
/* dt-ux-bar */
.dt-ux-actionbar, .dt-ux-fab{ display:none; }
@media (max-width:900px){
  .dt-ux-actionbar{
    display:flex; gap:8px; align-items:center;
    position:fixed; left:0; right:0; bottom:0; z-index:60;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background:#fff; border-top:2px solid var(--dt-text);
  }
  .dt-ux-actionbar > a{
    flex:1 1 0; min-height:48px;
    display:inline-flex; align-items:center; justify-content:center;
    margin:0; white-space:nowrap;
  }
  body.dt-ux-has-bar{ padding-bottom:78px; }
  body.dt-ux-has-bar .dt-scroll-top{ bottom:calc(82px + env(safe-area-inset-bottom, 0px)) !important; }

  .dt-ux-fab{
    display:inline-flex; align-items:center; gap:6px;
    position:fixed; right:12px; bottom:calc(64px + env(safe-area-inset-bottom, 0px)); z-index:59;
    padding:10px 16px; min-height:44px;
    border:2px solid var(--dt-text); border-radius:999px;
    background:var(--dt-green, #4c8c3f); color:#fff; text-decoration:none;
    font-weight:700; font-size:14px; box-shadow:2px 2px 0 var(--dt-text);
    transition:transform .25s ease, opacity .25s ease;
  }
  .dt-ux-fab.dt-ux-tucked{ transform:translateY(calc(100% + 32px)); opacity:0; pointer-events:none; }
  body.dt-ux-has-fab{ padding-bottom:64px; }
}
@media (max-width:900px) and (prefers-reduced-motion: reduce){
  .dt-ux-fab{ transition:none; }
}
/* dt-town-pop-archive */
/* ============================================================
   1) プレースホルダの色をカテゴリで決める
      （テーマPHPの crc32 が付ける --ph-c1 を、カテゴリクラスで上書きする）
   ============================================================ */
.dt-listing-card.dt_listing_category-gourmet          .dt-card-placeholder{ --ph-c1:var(--dt-cat-gourmet)  !important; }
.dt-listing-card.dt_listing_category-cafe             .dt-card-placeholder{ --ph-c1:var(--dt-cat-cafe)     !important; }
.dt-listing-card.dt_listing_category-sightseeing      .dt-card-placeholder{ --ph-c1:var(--dt-cat-sight)    !important; }
.dt-listing-card.dt_listing_category-nature-park      .dt-card-placeholder{ --ph-c1:var(--dt-cat-nature)   !important; }
.dt-listing-card.dt_listing_category-stay             .dt-card-placeholder{ --ph-c1:var(--dt-cat-stay)     !important; }
.dt-listing-card.dt_listing_category-shopping         .dt-card-placeholder{ --ph-c1:var(--dt-cat-shopping) !important; }
.dt-listing-card.dt_listing_category-market-street    .dt-card-placeholder{ --ph-c1:var(--dt-cat-market)   !important; }
.dt-listing-card.dt_listing_category-roadside-station .dt-card-placeholder{ --ph-c1:var(--dt-cat-roadside) !important; }
.dt-listing-card.dt_listing_category-activity         .dt-card-placeholder{ --ph-c1:var(--dt-cat-activity) !important; }
.dt-listing-card.dt_listing_category-hot-spring       .dt-card-placeholder{ --ph-c1:var(--dt-cat-onsen)    !important; }
.dt-listing-card.dt_listing_category-culture-art      .dt-card-placeholder{ --ph-c1:var(--dt-cat-culture)  !important; }
.dt-listing-card.dt_listing_category-rest-stop        .dt-card-placeholder{ --ph-c1:var(--dt-cat-rest)     !important; }

/* カテゴリバッジにカテゴリ色の点（色だけに頼らせない） */
.dt-card-tax-category::before{
  content:""; display:inline-block; width:8px; height:8px; margin-right:6px;
  border-radius:999px; background:var(--tp-cat,var(--dt-text)); vertical-align:middle;
}
.dt-listing-card.dt_listing_category-gourmet          { --tp-cat:var(--dt-cat-gourmet); }
.dt-listing-card.dt_listing_category-cafe             { --tp-cat:var(--dt-cat-cafe); }
.dt-listing-card.dt_listing_category-sightseeing      { --tp-cat:var(--dt-cat-sight); }
.dt-listing-card.dt_listing_category-nature-park      { --tp-cat:var(--dt-cat-nature); }
.dt-listing-card.dt_listing_category-stay             { --tp-cat:var(--dt-cat-stay); }
.dt-listing-card.dt_listing_category-shopping         { --tp-cat:var(--dt-cat-shopping); }
.dt-listing-card.dt_listing_category-market-street    { --tp-cat:var(--dt-cat-market); }
.dt-listing-card.dt_listing_category-roadside-station { --tp-cat:var(--dt-cat-roadside); }
.dt-listing-card.dt_listing_category-activity         { --tp-cat:var(--dt-cat-activity); }
.dt-listing-card.dt_listing_category-hot-spring       { --tp-cat:var(--dt-cat-onsen); }
.dt-listing-card.dt_listing_category-culture-art      { --tp-cat:var(--dt-cat-culture); }
.dt-listing-card.dt_listing_category-rest-stop        { --tp-cat:var(--dt-cat-rest); }

/* ============================================================
   2) リスト表示（デザイン03の既定）: サムネ左・情報右
   ============================================================ */
.dt-archive-results[data-dt-card-view="list"] .dt-listing-grid{ gap:12px !important; }
.dt-archive-results[data-dt-card-view="list"] .dt-listing-card{
  background:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:16px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
  overflow:hidden;
}
.dt-archive-results[data-dt-card-view="list"] .dt-card-image-wrap{
  border-right:2px solid var(--dt-text);
  border-bottom:0;
  background:var(--dt-bg-soft);
}
.dt-archive-results[data-dt-card-view="list"] .dt-card-body{
  position:static; inset:auto;
  display:flex; flex-direction:column; gap:6px; justify-content:center;
  padding:14px 16px !important;
  background:#fff; color:var(--dt-body);
}
.dt-archive-results[data-dt-card-view="list"] .dt-card-title,
.dt-archive-results[data-dt-card-view="list"] .dt-card-title a{
  color:var(--dt-text) !important; font-size:17px !important; font-weight:700 !important;
}
.dt-archive-results[data-dt-card-view="list"] .dt-card-meta{
  position:static; top:auto; left:auto; right:auto; margin:0; order:-1;
}
.dt-archive-results[data-dt-card-view="list"] .dt-card-address{
  min-height:0 !important; -webkit-line-clamp:1; margin:0;
  color:var(--dt-muted) !important; font-size:12.5px !important;
}
.dt-archive-results[data-dt-card-view="list"] .dt-card-summary{ gap:8px 12px; margin:0; }
.dt-archive-results[data-dt-card-view="list"] .dt-card-extra-meta{ margin:2px 0 0; }

/* ============================================================
   3) 結果ヘッダーとページネーション
   ============================================================ */
.dt-results-bar{
  display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:14px;
}
.dt-results-bar > p{
  margin:0; font-family:var(--dt-font-body); font-weight:900;
  font-size:clamp(19px,2vw,24px); color:var(--dt-text) !important;
}
.navigation.pagination{ display:flex; justify-content:center; gap:8px; margin-top:26px; }
.navigation.pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 12px;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  background:#fff !important; color:var(--dt-text) !important;
  font-family:var(--dt-font-num) !important; font-weight:600 !important;
}
.navigation.pagination .page-numbers.current{ background:var(--dt-text) !important; color:#FFF8EC !important; }
.navigation.pagination .page-numbers:hover{ background:var(--dt-bg-soft) !important; }

/* 表示切替トグル */
[data-dt-view-toggle] button{
  border:2px solid var(--dt-text) !important; background:#fff !important;
  color:var(--dt-text) !important; border-radius:999px !important; box-shadow:none !important;
}
[data-dt-view-toggle] button.is-active{ background:var(--dt-text) !important; color:#FFF8EC !important; }

@media (max-width:640px){
  .dt-archive-results[data-dt-card-view="list"] .dt-card-title,
  .dt-archive-results[data-dt-card-view="list"] .dt-card-title a{ font-size:15px !important; }
}
/* dt-town-pop-card */
/* 住所・評価・設備チップ（デザイン03のカード）
   住所と設備チップは「リスト表示」だけに出す。グリッドのタイルやホームの4列では
   縦に伸びて崩れるので出さない。
   テーマ(search-archive.css)は .dt-archive-results 配下の .dt-card-address を
   display:none !important で消しているので、1段深い詳細度(0,4,0)で戻す。 */
.dt-listing-card .dt-card-address,
.dt-listing-card .tp-card-features{ display:none !important; }

.dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-address{
  display:block !important; margin:0 !important; min-height:0 !important;
  color:var(--dt-muted) !important; font-size:12.5px !important;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.dt-archive-results[data-dt-card-view="list"] .dt-listing-card .tp-card-features{
  display:flex !important;
}
.tp-card-features{ flex-wrap:wrap; gap:5px; margin-top:2px; }
.tp-feature-chip{
  display:inline-flex; align-items:center;
  padding:3px 9px; border:1.5px solid var(--dt-border); border-radius:999px;
  background:var(--dt-bg-soft); color:var(--dt-body);
  font-size:11px; font-weight:500; line-height:1.3; white-space:nowrap;
}
.dt-rating span:not(.dt-stars){ font-family:var(--dt-font-num); font-weight:600; color:var(--dt-muted) !important; }
.dt-stars{ color:#E0A21C !important; letter-spacing:.5px; }
.dt-rating .dt-rating-src{ font-size:10.5px; font-weight:500; color:var(--dt-muted); white-space:nowrap; }
.dt-rating.dt-rating-google{ flex-wrap:wrap !important; white-space:normal !important; row-gap:2px; }
.dt-rating.dt-rating-google .dt-rating-src{ display:inline-block; max-width:100%; }
/* dt-town-pop-sweep */
/* ページ地は必ず生成り。listing-detail.css などが body に別の地色を敷いているため最後に上書き */
body,
body.wp-singular,
body.single,
body.single-dt_listing,
body.page,
body.archive,
body.search{
  background:var(--dt-bg) !important;
  color:var(--dt-body);
}

.dt-content-area,
.dt-site-main{ background:transparent; }

hr,
.dt-divider{ border-color:var(--dt-divider) !important; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid rgba(59,42,24,.42) !important;
  outline-offset:2px !important;
}

::selection{ background:rgba(95,168,43,.28); color:var(--dt-text); }

/* ------------------------------------------------------------
   マッピーの置き場所は、画像が用意されるまで出さない。
   使うときは以下のように背景画像を指定すれば自動的に表示される：
     .tp-cta-col:nth-child(1) .tp-cta-mascot{
        display:block;
        background-image:url('/wp-content/uploads/…/mappy_wave.png');
        background-size:contain; background-repeat:no-repeat; background-position:center;
     }
   ------------------------------------------------------------ */
.tp-cta-mascot{ display:none !important; }
.tp-cta-col{ gap:0 !important; }
/* dt-town-pop-articles */
/* ============================================================
   記事一覧（アートボード05）
   ============================================================ */
.tp-art-header{
  background:var(--dt-bg-soft);
  border-bottom:2px solid var(--dt-border);
  padding:40px 0 26px;
}
.tp-art-header h1{
  margin:0 0 8px; font-size:clamp(28px,3.4vw,44px); font-weight:900;
  color:var(--dt-text); line-height:1.25;
}
.tp-art-lead{ margin:0; max-width:62ch; font-size:14px; color:var(--dt-muted); line-height:1.9; }
.tp-art-chips{ display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.tp-art-chip{
  display:inline-flex; align-items:center; min-height:38px; padding:0 18px;
  background:#fff; color:var(--dt-text) !important;
  border:2px solid var(--dt-text); border-radius:999px;
  font-size:13px; font-weight:700;
}
.tp-art-chip:hover{ background:var(--dt-bg); text-decoration:none; }
.tp-art-chip.is-on{ background:var(--dt-text); color:#FFF8EC !important; }

.tp-art-wrap{ padding:28px 0 56px; }

/* ---- カード共通 ---- */
.tp-art-card{
  background:#fff;
  border:2px solid var(--dt-text);
  border-radius:22px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
  overflow:hidden;
  transition:transform .14s ease, box-shadow .14s ease;
}
.tp-art-card:hover{ transform:translate(-1px,-1px); box-shadow:5px 5px 0 var(--dt-shadow-color); }
.tp-art-media{
  position:relative; display:block; overflow:hidden;
  background:
    repeating-linear-gradient(135deg,
      color-mix(in oklab, var(--tp-ph,#8B7758) 30%, #FFF8EC) 0 7px,
      transparent 7px 18px),
    var(--dt-bg-soft);
}
.tp-art-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.tp-art-flag{
  position:absolute; top:14px; left:14px;
  display:inline-flex; align-items:center; padding:5px 14px;
  background:var(--dt-text); color:#FFF8EC; border-radius:999px;
  font-size:11.5px; font-weight:700;
}
.tp-art-body{ padding:16px 18px 18px; }
.tp-art-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin:0 0 8px; font-size:12px; color:var(--dt-muted);
}
.tp-art-meta time{ font-family:var(--dt-font-num); }
.tp-art-cat{ color:var(--dt-text); font-weight:700; }
.tp-art-cat::after{ content:"｜"; margin-left:10px; color:var(--dt-border); font-weight:400; }
.tp-art-title{ margin:0 0 8px; font-size:17px; font-weight:900; line-height:1.45; }
.tp-art-title a{ color:var(--dt-text) !important; }
.tp-art-title a:hover{ text-decoration:underline; }
.tp-art-excerpt{ margin:0; font-size:13px; line-height:1.85; color:var(--dt-body); }

/* ---- 特集（左に写真・右に本文） ---- */
.tp-art-featured{
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  align-items:stretch; margin-bottom:24px;
}
.tp-art-featured .tp-art-media{ min-height:340px; border-right:2px solid var(--dt-text); }
.tp-art-featured .tp-art-body{
  display:flex; flex-direction:column; justify-content:center;
  padding:28px 30px;
}
.tp-art-featured .tp-art-title{ font-size:clamp(22px,2.4vw,30px); margin-bottom:12px; }
.tp-art-featured .tp-art-excerpt{ font-size:14px; }
.tp-art-author{
  display:flex; align-items:center; gap:10px; margin:18px 0 0;
  font-size:12.5px; font-weight:700; color:var(--dt-text);
}
.tp-art-author img,.tp-art-avatar{ width:34px; height:34px; border-radius:999px; display:block; }
.tp-art-read{
  align-self:flex-start; display:inline-flex; align-items:center;
  min-height:44px; margin-top:18px; padding:0 26px;
  background:var(--dt-green); color:#fff !important;
  border:2px solid var(--dt-text); border-radius:999px;
  font-weight:700; font-size:14px;
}
.tp-art-read:hover{ background:#54941f; text-decoration:none; }

/* ---- 3列グリッド ---- */
.tp-art-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:20px;
}
.tp-art-grid .tp-art-media{ aspect-ratio:16/10; border-bottom:2px solid var(--dt-text); }

/* ---- ページ送り・空 ---- */
.tp-art-pagination ul{ display:flex; justify-content:center; gap:8px; list-style:none; margin:30px 0 0; padding:0; }
.tp-art-pagination .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 12px;
  border:2px solid var(--dt-text); border-radius:999px;
  background:#fff; color:var(--dt-text) !important;
  font-family:var(--dt-font-num); font-weight:600;
}
.tp-art-pagination .page-numbers.current{ background:var(--dt-text); color:#FFF8EC !important; }
.tp-art-empty{
  padding:26px; background:#fff; border:2px dashed var(--dt-border); border-radius:20px;
  color:var(--dt-muted); font-size:14px;
}

/* ============================================================
   記事詳細（アートボード05／テンプレートは dt-townpop-tpl/single.php）
   ============================================================ */

/* 見出し部・写真・CTA は 2カラム(.dt-content-area=1080px)と左端を揃える。
   素の .dt-container は 1180px あるので、揃えないと本文だけ50pxずれる。 */
.tp-art-crumbs-inner,
.tp-art-detail-head > .dt-container,
.tp-art-detail-figure-wrap,
.tp-art-cta-wrap > .dt-container{ max-width:1080px !important; }

/* ---- パンくず帯 ---- */
.tp-art-crumbs{ background:var(--dt-bg-soft); border-bottom:2px solid var(--dt-border); }
.tp-art-crumbs-inner{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  min-height:44px; font-size:12px; color:var(--dt-muted);
}
.tp-art-crumbs a{ color:var(--dt-body) !important; font-weight:700; }
.tp-art-crumbs a:hover{ color:var(--dt-text) !important; text-decoration:underline; }
.tp-art-crumb-sep{ color:var(--dt-border); }

/* ---- 見出し部（写真の上に文字を載せない） ---- */
.tp-art-detail-head{ background:var(--dt-bg); padding:36px 0 20px; }
.tp-art-detail-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px;
  margin:0 0 14px; font-size:12px; color:var(--dt-muted);
}
.tp-art-detail-meta time{ font-family:var(--dt-font-num); font-weight:600; }
.tp-art-detail-cat{
  display:inline-flex; align-items:center; min-height:28px; padding:0 13px;
  background:#fff; border:2px solid var(--dt-text); border-radius:999px;
  color:var(--dt-text) !important; font-size:11.5px; font-weight:700;
}
.tp-art-detail-cat:hover{ background:var(--dt-bg-soft); text-decoration:none; }
.tp-art-detail-read{ font-family:var(--dt-font-num); font-weight:600; }
.tp-art-detail-title{
  margin:0; max-width:24em;
  font-size:clamp(26px,3.2vw,40px); font-weight:900; line-height:1.34; color:var(--dt-text);
  text-wrap:balance;
}

/* ---- 写真は枠付きパネル ---- */
.tp-art-detail-figure-wrap{ padding-top:6px; }
.tp-art-detail-figure{
  margin:0; overflow:hidden; background:var(--dt-bg-soft);
  border:2px solid var(--dt-text); border-radius:22px;
  box-shadow:5px 5px 0 var(--dt-shadow-color);
}
.tp-art-detail-figure img{ display:block; width:100%; aspect-ratio:16/7; object-fit:cover; }

/* ---- 2カラム ---- */
.tp-art-detail-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:44px; align-items:start;
  max-width:1080px !important;
  padding-top:34px !important; padding-bottom:56px !important;
}
.tp-art-detail-layout > *{ min-width:0; }
.tp-art-side-sticky{ position:sticky; top:96px; display:grid; gap:16px; }

/* ---- 本文 ---- */
.tp-art-detail-layout .dt-content{
  color:var(--dt-body); font-size:16px; line-height:2.05;
}
/* 生成物に空段落が12個入っていて、そのぶん縦に間延びしていた */
.tp-art-detail-layout .dt-content p:empty{ display:none !important; }
.tp-art-detail-layout .dt-content p{ margin:0 0 20px; }
.tp-art-detail-layout .dt-content > *:last-child{ margin-bottom:0; }

/* 節見出しは **h3**（生成物がそう出している）。h2 が来たらさらに一段大きく。 */
.tp-art-detail-layout .dt-content h2{
  margin:44px 0 14px; font-size:clamp(21px,2.1vw,26px);
  font-weight:900; color:var(--dt-text); line-height:1.5;
}
.tp-art-detail-layout .dt-content h3{
  margin:40px 0 14px; font-size:clamp(19px,1.9vw,23px);
  font-weight:900; color:var(--dt-text); line-height:1.55;
}
.tp-art-detail-layout .dt-content h4{
  margin:28px 0 10px; font-size:17px; font-weight:900; color:var(--dt-text);
}
/* 見出しの中身が <strong> で包まれている（生成物の癖）。二重に太らせない */
.tp-art-detail-layout .dt-content h2 strong,
.tp-art-detail-layout .dt-content h3 strong,
.tp-art-detail-layout .dt-content h4 strong{ font-weight:inherit; }
.tp-art-detail-layout .dt-content > h2:first-child,
.tp-art-detail-layout .dt-content > h3:first-child{ margin-top:0; }

/* 先頭の pre はリード文。等幅と枠を外して導入段落として組む */
.tp-art-detail-layout .dt-content pre.wp-block-preformatted{
  margin:0 0 24px; padding:20px 22px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:18px;
  font-family:var(--dt-font-body); font-size:14px; color:var(--dt-text);
  line-height:1.95; white-space:pre-wrap;
}
.tp-art-detail-layout .dt-content > pre.wp-block-preformatted:first-of-type{
  margin:0 0 30px; padding:0;
  background:none; border:0; border-radius:0;
  font-size:17px; font-weight:500; line-height:1.95; color:var(--dt-text);
}

.tp-art-detail-layout .dt-content img{
  border:2px solid var(--dt-text); border-radius:14px;
}
.tp-art-detail-layout .dt-content blockquote{
  margin:0 0 24px; padding:18px 22px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:18px;
  font-size:14px; color:var(--dt-text);
}
.tp-art-detail-layout .dt-content ul,
.tp-art-detail-layout .dt-content ol{ margin:0 0 22px; padding-left:1.4em; }
.tp-art-detail-layout .dt-content li{ margin:0 0 8px; }

/* 節の group は素通し。見出しを持たない group（＝補足）だけ面にする。
   :has() が使えないブラウザでは全部素通しになるだけで壊れない。 */
.tp-art-detail-layout .dt-content .wp-block-group{ margin:0; }
.tp-art-detail-layout .dt-content .wp-block-group:not(:has(.wp-block-heading)){
  margin:0 0 28px; padding:22px 24px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:20px;
}
.tp-art-detail-layout .dt-content .wp-block-group:not(:has(.wp-block-heading)) > .wp-block-group__inner-container > p:first-child > strong{
  display:block; margin:0 0 6px; font-size:17px; font-weight:900; color:var(--dt-text); line-height:1.55;
}
.tp-art-detail-layout .dt-content .wp-block-group > .wp-block-group__inner-container > *:last-child{ margin-bottom:0; }

/* 時間割などの2段組 */
.tp-art-detail-layout .dt-content .wp-block-columns{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px;
  margin:0 0 28px; padding:22px 24px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:20px;
}
.tp-art-detail-layout .dt-content .wp-block-column > *:last-child{ margin-bottom:0; }

/* 本文中のリンク。店舗リンクだけチップにする（見出しの中は素のリンクのまま） */
.tp-art-detail-layout .dt-content a{
  color:var(--dt-text) !important; text-decoration:underline; text-underline-offset:3px;
}
.tp-art-detail-layout .dt-content p > a[data-type="dt_listing"],
.tp-art-detail-layout .dt-content li > a[data-type="dt_listing"]{
  padding:2px 10px 3px; margin:0 1px; text-decoration:none;
  background:#fff; border:1.5px solid var(--dt-border); border-radius:999px;
  font-weight:700; white-space:nowrap;
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
}
.tp-art-detail-layout .dt-content p > a[data-type="dt_listing"]:hover,
.tp-art-detail-layout .dt-content li > a[data-type="dt_listing"]:hover{
  border-color:var(--dt-text); background:var(--dt-bg-soft);
}

/* ---- 本文の下: 紹介スポットのカードと地図 ---- */
.tp-art-block-title{
  margin:48px 0 16px; font-size:clamp(19px,1.9vw,24px);
  font-weight:900; color:var(--dt-text); line-height:1.4;
}
.tp-art-places-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.tp-art-places-grid .dt-listing-card{
  background:#fff; border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color); overflow:hidden;
}
.tp-art-places-grid .dt-card-image-wrap{
  position:relative; border-bottom:2px solid var(--dt-text); background:var(--dt-bg-soft);
}
.tp-art-places-grid .dt-card-body{
  position:static !important; inset:auto !important;
  padding:12px 14px 14px; background:#fff; color:var(--dt-body);
}
.tp-art-places-grid .dt-card-title{ margin:6px 0 0; font-size:15px; font-weight:700; line-height:1.45; }
.tp-art-places-grid .dt-card-title a{ color:var(--dt-text) !important; text-decoration:none; }
.tp-art-places-grid .dt-card-title a:hover{ text-decoration:underline; }
.tp-art-places-more{ margin:16px 0 0; font-size:13px; font-weight:700; }

.tp-art-map .dt-article-listings-map{
  height:420px; border:2px solid var(--dt-text); border-radius:0;  /* 地図は角丸なし */
  background:var(--dt-bg-soft);
}

/* ---- サイドバー ---- */
.dt-article-sidebar-card{
  background:#fff; border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color); padding:16px 16px 18px;
}
.dt-article-sidebar-title{
  margin:0 0 12px; font-size:15px; font-weight:900; color:var(--dt-text);
}
.dt-article-sidebar-empty{ margin:0; font-size:12.5px; color:var(--dt-muted); line-height:1.8; }
.dt-article-related-list{ display:grid; gap:10px; }
.dt-article-related-item{
  display:flex; align-items:flex-start; gap:10px; padding:8px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:14px;
}
.dt-article-related-item:hover{ background:#fff; border-color:var(--dt-text); text-decoration:none; }
.dt-article-related-thumb img{
  display:block; width:56px; height:56px; object-fit:cover;
  border:1.5px solid var(--dt-text); border-radius:10px;
}
.dt-article-related-body strong{
  display:block; font-size:13px; font-weight:700; color:var(--dt-text); line-height:1.5;
}
.dt-article-related-body time{
  display:block; margin-top:4px; font-family:var(--dt-font-num); font-size:11.5px; color:var(--dt-muted);
}
.dt-article-cta-card{ display:grid; gap:8px; }
.dt-article-cta-card a{
  display:flex; align-items:center; min-height:44px; padding:0 15px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:999px;
  color:var(--dt-text) !important; font-size:13px; font-weight:700;
}
.dt-article-cta-card a:hover{ background:#fff; border-color:var(--dt-text); text-decoration:none; }

/* ---- 最下部のCTA帯 ---- */
.tp-art-cta-wrap{ padding:0 0 56px; background:var(--dt-bg); }
.tp-art-cta{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px; align-items:center;
  padding:30px 34px; background:var(--dt-text); border-radius:22px;
}
.tp-art-cta-body h2{ margin:0 0 6px; font-size:21px; font-weight:900; color:#FFF8EC; line-height:1.4; }
.tp-art-cta-body p{ margin:0; font-size:13px; color:#DCC9AC; line-height:1.85; }
.tp-art-cta-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.tp-art-cta-btn{
  display:inline-flex; align-items:center; min-height:48px; padding:0 24px;
  border:2px solid transparent; border-radius:999px;
  font-family:var(--dt-font-ui); font-size:14px; font-weight:700; white-space:nowrap;
}
.tp-art-cta-btn-green{ background:var(--dt-green); color:#fff !important; border-color:#FFF8EC; }
.tp-art-cta-btn-green:hover{ background:#54941f; text-decoration:none; }
.tp-art-cta-btn-light{ background:#FFF8EC; color:var(--dt-text) !important; }
.tp-art-cta-btn-light:hover{ background:#fff; text-decoration:none; }

/* ---- レスポンシブ ---- */
@media (max-width:960px){
  .tp-art-featured{ grid-template-columns:1fr; }
  .tp-art-featured .tp-art-media{ min-height:0; aspect-ratio:16/10; border-right:0; border-bottom:2px solid var(--dt-text); }
  .tp-art-featured .tp-art-body{ padding:20px 20px 22px; }
  .tp-art-detail-layout{ grid-template-columns:minmax(0,1fr); gap:34px; }
  .tp-art-side-sticky{ position:static; }
}
@media (max-width:640px){
  .tp-art-header{ padding:28px 0 20px; }
  .tp-art-grid{ grid-template-columns:1fr; }
  .tp-art-detail-head{ padding:24px 0 16px; }
  .tp-art-detail-figure{ border-radius:18px; box-shadow:4px 4px 0 var(--dt-shadow-color); }
  .tp-art-detail-figure img{ aspect-ratio:16/10; }
  .tp-art-detail-layout{ padding-top:26px !important; padding-bottom:40px !important; }
  .tp-art-detail-layout .dt-content{ font-size:16px; line-height:1.9; }
  .tp-art-detail-layout .dt-content .wp-block-columns{ grid-template-columns:1fr; padding:20px; }
  .tp-art-detail-layout .dt-content .wp-block-group:not(:has(.wp-block-heading)){ padding:20px; }
  .tp-art-places-grid{ grid-template-columns:1fr; }
  .tp-art-map .dt-article-listings-map{ height:320px; }
  .tp-art-cta{ grid-template-columns:1fr; padding:24px 20px; gap:20px; }
}
/* dt-town-pop-auth */
/* ============================================================
   ログイン・新規登録（アートボード06）
   ============================================================ */
.tp-auth-wide{ max-width:1080px !important; }

.tp-auth-split{
  display:grid;
  /* 1fr ではなく minmax(0,1fr)。1fr は min-width:auto なので子が min-content 以下に縮まない */
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  align-items:stretch;
  margin:28px 0 44px;
  background:var(--dt-bg-soft);
  border:2px solid var(--dt-text); border-radius:24px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);   /* 標準カード＝枠2px＋4px4px */
  overflow:hidden;
}
.tp-auth-split > *{ min-width:0; }

/* 左：こげ茶の説明面（右のフォームと天を合わせる） */
.tp-auth-aside{
  display:flex; flex-direction:column; justify-content:flex-start;
  padding:36px; background:var(--dt-text); color:#DCC9AC;
}
.tp-auth-aside h2{
  margin:0 0 28px; color:#FFF8EC;
  font-size:clamp(23px,2.5vw,32px); font-weight:900; line-height:1.45;
}
.tp-auth-benefit{
  display:flex; align-items:flex-start; gap:12px;
  margin:0 0 14px; font-size:14px; line-height:2;
}
.tp-auth-benefit:last-of-type{ margin-bottom:0; }
/* 数字バッジは生成り。緑は主要CTA（ログイン/登録ボタン）だけに残す */
.tp-auth-num{
  flex:0 0 auto; width:26px; height:26px; margin-top:2px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#FFF8EC; color:var(--dt-text); border-radius:999px;
  font-family:var(--dt-font-num); font-size:13px; font-weight:700; line-height:1;
}
.tp-auth-note{
  margin:28px 0 0; padding-top:20px;
  border-top:1px solid rgba(220,201,172,.28);
  font-size:12px; line-height:1.95; color:#B39C7B;   /* こげ茶地で 5.20:1 */
}

/* 右：フォーム面（プラグインのパネルの見た目を消して面に溶かす） */
.tp-auth-split .dt-contributor-auth-panel{
  margin:0 !important; padding:36px !important;
  background:var(--dt-bg-soft) !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
}
.dt-contributor-auth-copy h2{
  margin:0 0 8px; font-size:22px; font-weight:900; line-height:1.4; color:var(--dt-text);
}
.dt-contributor-auth-copy .dt-contributor-help{
  margin:0; font-size:13px; color:var(--dt-muted); line-height:1.9;
}

/* タブ：テーマが grid + gap:10px + flex-wrap:wrap、ボタンに width:100% を当てている。
   見た目を作る指定は !important で固定しないと、隙間が残るか2段に折れる。 */
.dt-contributor-auth-tabs{
  display:inline-flex !important; flex-wrap:nowrap !important; width:auto !important; gap:0 !important;
  margin:20px 0 !important; padding:0 !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  background:#fff !important; overflow:hidden;
}
.dt-contributor-auth-tabs button{
  flex:0 0 auto !important; width:auto !important;
  min-height:44px; padding:0 28px; margin:0; white-space:nowrap;
  background:transparent !important; color:var(--dt-text) !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  font-family:var(--dt-font-ui); font-size:13px; font-weight:700; cursor:pointer;
}
.dt-contributor-auth-tabs button.is-active{
  background:var(--dt-text) !important; color:#FFF8EC !important;
}

/* テーマ既定の上罫線（#e2e8f0＝パレット外）と余分な上余白を落とす */
.dt-contributor-auth-form{
  border-top:0 !important; padding-top:0 !important; margin-top:0 !important;
}

/* 入力欄 */
.dt-contributor-field{
  display:block; margin:0 0 20px;
  font-size:13px; font-weight:700; color:var(--dt-text);
}
.dt-contributor-auth-form input[type="text"],
.dt-contributor-auth-form input[type="email"],
.dt-contributor-auth-form input[type="password"],
.dt-contributor-auth-form input[type="url"],
.dt-contributor-auth-form textarea,
.dt-contributor-auth-form select{
  display:block; width:100%; margin-top:8px; padding:12px 14px;
  background:#fff; color:var(--dt-text);
  border:2px solid var(--dt-border) !important; border-radius:12px !important;
  box-shadow:none !important;
  font-family:var(--dt-font-body); font-size:14px;
}
.dt-contributor-auth-form input:focus,
.dt-contributor-auth-form textarea:focus,
.dt-contributor-auth-form select:focus{
  border-color:var(--dt-text) !important; outline:none;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
}
.dt-contributor-check{
  display:flex; align-items:center; gap:12px;
  min-height:44px; margin:0 0 8px;
  font-size:13px; color:var(--dt-body); font-weight:500;
}
.dt-contributor-check input[type="checkbox"]{ width:20px; height:20px; accent-color:var(--dt-green); }

/* ボタン：青 → 緑ピル（この画面の主要CTAは1つだけ） */
.dt-contributor-auth-form button[type="submit"],
.dt-contributor-auth-form .dt-contributor-submit{
  display:inline-flex; align-items:center; justify-content:center;
  width:100%; min-height:48px !important; padding:0 28px;
  background:var(--dt-green) !important; color:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:4px 4px 0 var(--dt-text) !important;
  font-family:var(--dt-font-ui); font-size:15px; font-weight:700 !important; cursor:pointer;
}
.dt-contributor-auth-form button[type="submit"]:hover{ background:#54941f !important; }
.dt-contributor-auth-form .dt-contributor-auth-actions{ margin:8px 0 0 !important; }
.dt-contributor-link-button{
  display:inline-flex; align-items:center; min-height:44px;
  background:none !important; border:0 !important; padding:0 !important; box-shadow:none !important;
  color:var(--dt-muted) !important; font-size:13px; font-weight:700;
  text-decoration:underline; cursor:pointer;
}
.dt-contributor-link-button:hover{ color:var(--dt-text) !important; }
.dt-contributor-auth-form .dt-contributor-help{
  margin:0; font-size:12px; color:var(--dt-muted); line-height:1.85;
}
.dt-contributor-auth-form a{ color:var(--dt-text) !important; }

/* ---- 「お店を推薦」ページのログイン要求（07の入口） ---- */
.dt-add-place-header h2{
  margin:0 0 8px; font-size:clamp(20px,2.2vw,26px); font-weight:900; color:var(--dt-text);
}
.dt-add-place-header p{ margin:0; font-size:14px; color:var(--dt-muted); line-height:1.95; }
.dt-contributor-auth-intro{
  margin:20px 0; padding:20px !important;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-border) !important; border-radius:16px !important;
  color:var(--dt-text) !important; font-size:13px; font-weight:700; line-height:1.85;
}
.dt-contributor-auth-panel{
  background:#fff; padding:28px;
  border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
}

/* ---- 1カラム。フォームを先に、説明面を後ろに ---- */
@media (max-width:860px){
  .tp-auth-split{ grid-template-columns:minmax(0,1fr); }
  .tp-auth-split .dt-contributor-auth-panel{ order:1; padding:28px 20px !important; }
  .tp-auth-aside{
    order:2; padding:28px 20px;
    border-top:2px solid var(--dt-text);
  }
  .tp-auth-aside h2{ margin-bottom:20px; }
  .dt-contributor-auth-tabs button{ padding:0 20px; }
}
@media (max-width:600px){
  /* プラグインの .dt-contributor-dashboard が padding:0 20px を持っており、
     ページ左右の余白が 34px になっていた（モバイルの規定は 16–18px） */
  .dt-contributor-dashboard.dt-contributor-guest{
    padding-left:4px !important; padding-right:4px !important;
  }
  .tp-auth-split{ margin:20px 0 36px; border-radius:20px; }
}
/* 1.2.1: テーマ base.css がスマホで .dt-page-header の h1 を隠し、空の帯だけが残る。
   推薦ページは本文に同じ見出し（h2）があるので、帯ごと出さない
   1.2.2: PC でも帯（h1）と本文（h2）で同じ見出しが2回出ていたので、すべての幅で帯を出さない（CODE_QUEUE Q-052 の3） */
body:has(.dt-add-place-page) .dt-page-header{ display:none; }
/* dt-town-pop-browse */
/* ============================================================
   共通：インデックスページのヘッダー帯
   ============================================================ */
.dt-area-index-header{
  background:var(--dt-bg-soft) !important;
  border-bottom:2px solid var(--dt-border);
  padding:38px 0 30px;
}
.dt-area-index-header h1{
  margin:0 0 8px; font-size:clamp(26px,3.2vw,40px); font-weight:900;
  color:var(--dt-text); line-height:1.25;
}
.dt-area-index-header .dt-kicker{
  margin:0 0 4px; font-family:var(--dt-font-num); font-size:12px;
  letter-spacing:.12em; font-weight:700; color:var(--dt-muted);
}
.dt-area-index-header p:not(.dt-kicker){
  margin:0; font-size:13.5px; color:var(--dt-muted); line-height:1.9;
}

/* ============================================================
   カテゴリーから探す（02）— 見出し帯
   ============================================================ */
.tp-browse-top{
  background:var(--dt-bg-soft);
  border-bottom:2px solid var(--dt-border);
  padding:30px 0 26px;
}
.tp-browse-top-inner{
  display:flex; align-items:center; gap:22px; max-width:1180px;
}
.tp-browse-mascot{
  flex:0 0 auto; width:96px; height:96px; object-fit:contain; display:block;
}
.tp-browse-top-text{ min-width:0; }
.tp-browse-top-text .dt-kicker{
  margin:0 0 2px; font-family:var(--dt-font-num); font-size:12px;
  letter-spacing:.12em; font-weight:700; color:var(--dt-muted);
}
.tp-browse-top-text h1{
  margin:0 0 8px; font-size:clamp(26px,3.2vw,40px); font-weight:900;
  color:var(--dt-text); line-height:1.25;
}
.tp-browse-lead{
  margin:0; max-width:62ch; font-size:13.5px; color:var(--dt-muted); line-height:1.95;
}

/* ============================================================
   系統ごとのまとまり
   ============================================================ */
.tp-browse{ padding:26px 0 56px; }
.tp-browse-inner{ max-width:1180px; }
.tp-cat-group{ margin:0 0 30px; }
.tp-cat-group-head{
  display:flex; align-items:baseline; gap:10px;
  margin:0 0 12px; padding:0 0 8px;
  border-bottom:2px solid var(--dt-border);
  font-size:clamp(17px,2vw,21px); font-weight:900; color:var(--dt-text);
}
.tp-cat-group-count{
  font-family:var(--dt-font-num); font-size:12.5px; font-weight:600; color:var(--dt-muted);
}

.tp-cat-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px;
}

/* ---- カード ---- */
.dt-category-index-card{
  background:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:20px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
  padding:14px 16px 16px !important;
  transition:transform .14s ease, box-shadow .14s ease;
}
.dt-category-index-card:hover{
  transform:translate(-1px,-1px);
  box-shadow:5px 5px 0 var(--dt-shadow-color) !important;
}

.dt-category-index-card-head{
  display:flex !important; align-items:center; gap:12px;
  color:var(--dt-text) !important; text-decoration:none;
}
.dt-category-index-card-head:hover{ text-decoration:none; }
/* アイコンは「色のついた字形」だけにする。
   自然・公園と体験は CSS マスクで描かれていて（テーマの dt-mountain-sun.svg）、
   マスクは要素の塗りを字形で切り抜くので、**タイル状の下地を敷けない**。
   12枚の見た目を揃えるため、下地は付けず全部 glyph だけにしている。 */
.dt-category-index-card .dt-category-index-icon{
  flex:0 0 auto;
  width:42px !important; height:42px !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  color:var(--tp-cat,var(--dt-text)) !important;
  /* このスプライトの字形は**線で描かれている**（fill:none + stroke）。
     テーマが stroke に --dt-blue を入れているので、color だけでは色が変わらない。 */
  stroke:var(--tp-cat,var(--dt-text)) !important;
}
.dt-category-index-card .dt-category-index-icon.dt-category-mountain-sun-icon{
  background-color:var(--tp-cat,var(--dt-text)) !important;
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-position:center; mask-position:center;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
}
.dt-category-index-card-head > span{ min-width:0; flex:1 1 auto; }
.dt-category-index-card-head strong{
  display:block; font-size:15.5px; font-weight:900; color:var(--dt-text); line-height:1.45;
}
.dt-category-index-card-head small{
  display:block; margin-top:1px;
  font-family:var(--dt-font-num); font-size:11.5px; font-weight:600; color:var(--dt-muted);
}
.dt-category-index-card-head b{
  flex:0 0 auto; font-size:19px; color:var(--dt-muted); font-weight:400;
}

/* ---- ジャンルのタグ（最大4つ＋ほかN） ---- */
.dt-category-index-tags{
  margin-top:12px; padding-top:10px;
  border-top:1.5px solid var(--dt-border);
  display:flex; flex-wrap:wrap; gap:6px;
}
.dt-category-index-tags a{
  display:inline-flex; align-items:center; min-height:28px; padding:0 11px;
  background:var(--dt-bg-soft) !important; color:var(--dt-body) !important;
  border:1.5px solid var(--dt-border) !important; border-radius:999px !important;
  font-size:11.5px; font-weight:500; line-height:1.3;
}
.dt-category-index-tags a:hover{
  background:#fff !important; border-color:var(--dt-text) !important;
  color:var(--dt-text) !important; text-decoration:none;
}
.tp-cat-tag-more{ font-weight:700 !important; color:var(--dt-muted) !important; }

/* ---- もう片方への導線（02⇄エリア）---- */
.tp-browse-area-cta{
  display:flex; align-items:center; gap:14px;
  margin:10px 0 0; padding:18px 22px;
  background:var(--dt-text) !important; color:#FFF8EC !important;
  border:2px solid var(--dt-text); border-radius:22px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
  text-decoration:none;
}
.tp-browse-area-cta:hover{ background:#4a3520 !important; color:#FFF8EC !important; text-decoration:none; }
.tp-browse-area-text{ flex:1 1 auto; min-width:0; }
.tp-browse-area-cta strong{ display:block; font-size:17px; font-weight:900; color:#FFF8EC; }
.tp-browse-area-cta small{ display:block; margin-top:3px; font-size:12.5px; color:#DCC9AC; }
.tp-browse-area-cta b{ font-size:22px; color:#DCC9AC; font-weight:400; }

/* ============================================================
   エリアから探す（02下半分）
   ============================================================ */
/* ---- 掲載のある県のタイル ---- */
.tp-pref-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:14px;
}
.tp-pref-tile{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:150px; padding:14px 16px;
  background-color:var(--dt-bg-soft);
  background-size:cover; background-position:center;
  border:2px solid var(--dt-text) !important; border-radius:20px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
  text-decoration:none; overflow:hidden;
  transition:transform .14s ease, box-shadow .14s ease;
}
.tp-pref-tile:hover{
  transform:translate(-1px,-1px);
  box-shadow:5px 5px 0 var(--dt-shadow-color); text-decoration:none;
}
/* 一番件数の多い県だけ2列ぶん取る（デザイン02の大タイル） */
.tp-pref-tile.is-lead{ grid-column:span 2; min-height:200px; }

/* 写真がない県：生成りの斜線。写真の代わりに「まだ写真がない」と分かる見た目にする */
.tp-pref-tile:not(.has-photo){
  background-image:repeating-linear-gradient(135deg,
    rgba(120,90,50,.10) 0 7px, transparent 7px 18px);
}
.tp-pref-tile:not(.has-photo) .tp-pref-name{ color:var(--dt-text); }
.tp-pref-tile:not(.has-photo) .tp-pref-en{ color:var(--dt-muted); }
.tp-pref-tile.has-photo .tp-pref-name{ color:#FFF8EC; }
.tp-pref-tile.has-photo .tp-pref-en{ color:#E7D6BC; }

.tp-pref-en{
  font-family:var(--dt-font-num); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; line-height:1.4;
}
.tp-pref-name{ font-size:18px; font-weight:900; line-height:1.3; }
.tp-pref-count{
  position:absolute; top:10px; right:10px;
  display:inline-flex; align-items:center; min-height:26px; padding:0 10px;
  background:#FFF8EC; color:var(--dt-text);
  border:2px solid var(--dt-text); border-radius:999px;
  font-family:var(--dt-font-num); font-size:12px; font-weight:700;
}

/* 0件の県（?region= で地域を絞ったときだけ出る）。押せるが、期待させない見た目にする */
.tp-pref-tile.is-empty{
  opacity:.62;
  box-shadow:2px 2px 0 var(--dt-shadow-color);
}
.tp-pref-tile.is-empty .tp-pref-count{
  color:var(--dt-muted); border-color:var(--dt-border); font-weight:600;
}

/* 見出し帯の「全国を見る」 */
.tp-area-back{
  margin-left:10px; white-space:nowrap;
  color:var(--dt-text) !important; font-weight:700; text-decoration:underline;
}

/* ---- 市区町村の近道 ---- */
.tp-muni-list{ display:flex; flex-wrap:wrap; gap:8px; }
.tp-muni{
  display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:0 14px;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:2px 2px 0 var(--dt-shadow-color);
  font-size:13px; font-weight:700; text-decoration:none;
}
.tp-muni:hover{ background:var(--dt-bg-soft) !important; text-decoration:none; }
.tp-muni b{ font-family:var(--dt-font-num); font-size:11.5px; font-weight:700; color:var(--dt-muted); }

/* ---- これから増える地域（0件）---- */
.tp-area-soon .tp-cat-group-head{ color:var(--dt-muted); }
.tp-area-soon-row{
  display:flex; align-items:baseline; gap:14px;
  padding:8px 0; border-bottom:1.5px dashed var(--dt-border);
}
.tp-area-soon-row:last-child{ border-bottom:0; }
.tp-area-soon-label{
  flex:0 0 118px; margin:0;
  font-size:12.5px; font-weight:700; color:var(--dt-muted);
}
.tp-area-soon-prefs{ display:flex; flex-wrap:wrap; gap:6px; }
.tp-area-soon-prefs a{
  display:inline-flex; align-items:center; min-height:26px; padding:0 10px;
  background:var(--dt-bg-soft) !important; color:var(--dt-muted) !important;
  border:1.5px solid var(--dt-border) !important; border-radius:999px !important;
  font-size:11.5px; font-weight:500; text-decoration:none;
}
.tp-area-soon-prefs a:hover{
  background:#fff !important; border-color:var(--dt-text) !important; color:var(--dt-text) !important;
}

@media (max-width:640px){
  .tp-browse-top-inner{ gap:14px; }
  .tp-browse-mascot{ width:64px; height:64px; }
  .tp-cat-grid{ grid-template-columns:1fr; }
  .tp-pref-grid{ grid-template-columns:repeat(2,1fr); }
  .tp-pref-tile.is-lead{ grid-column:span 2; }
  .tp-area-soon-row{ display:block; }
  .tp-area-soon-label{ margin-bottom:6px; }
}

/* 2.3.0: 窓口から借りた写真のクレジット（県名の下に小さく1行。写真のキャプションが「提供：」などで始まるときだけ）。
   写真に重ねると、スマホの細いタイルで写真の上半分をふさいだので、タイルの文字の並びの最後（order）に置く。切らずに折り返す（唐津は「提供：」の表示が必須） */
.tp-pref-credit{
  order:3; margin-top:4px;
  color:rgba(255,248,236,.86);
  font-size:9.5px; font-weight:600; line-height:1.4; letter-spacing:0;
  white-space:normal; overflow-wrap:anywhere;
}
/* dt-town-pop-submit */
/* ============================================================
   投稿フォーム（アートボード07）
   ============================================================ */
.tp-submit-wide{ max-width:1120px !important; }
.tp-submit-split{
  display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:26px; align-items:start;
  margin:22px 0 48px;
}
.tp-submit-aside{ display:flex; flex-direction:column; gap:14px; position:sticky; top:88px; }
.tp-submit-card{
  background:#fff; border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color); padding:16px 18px 18px;
}
.tp-submit-card.is-soft{
  background:var(--dt-bg-soft); border-color:var(--dt-border); box-shadow:none;
}
.tp-submit-card h3{
  margin:0 0 8px; font-size:14px; font-weight:900; color:var(--dt-text);
}
.tp-submit-card p{ margin:0; font-size:12.5px; line-height:1.95; color:var(--dt-body); }

/* フォームの面 */
.dt-contributor-submit-section{
  background:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:22px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
  padding:26px 28px 30px !important;
  margin:0 !important;
}

/* ---- ステップ表示 ---- */
.tp-steps{
  display:flex; align-items:flex-start; gap:0; margin:0 0 24px; padding:0; list-style:none;
}
.tp-steps li{ flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:7px; position:relative; }
.tp-steps li::before,
.tp-steps li::after{
  content:""; position:absolute; top:16px; height:2px; background:var(--dt-border);
}
.tp-steps li::before{ left:0; right:50%; margin-right:20px; }
.tp-steps li::after{ left:50%; right:0; margin-left:20px; }
.tp-steps li:first-child::before,
.tp-steps li:last-child::after{ display:none; }
.tp-steps li.is-done::before,
.tp-steps li.is-done::after,
.tp-steps li.is-current::before{ background:var(--dt-text); }
.tp-step-num{
  width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center;
  background:#fff; color:var(--dt-muted);
  border:2px solid var(--dt-border); border-radius:999px;
  font-family:var(--dt-font-num); font-size:14px; font-weight:700;
  position:relative; z-index:1;
}
.tp-step-label{ font-size:12px; font-weight:700; color:var(--dt-muted); text-align:center; line-height:1.4; }
.tp-steps li.is-current .tp-step-num{
  background:var(--dt-text); color:#FFF8EC; border-color:var(--dt-text);
}
.tp-steps li.is-current .tp-step-label{ color:var(--dt-text); }
.tp-steps li.is-done .tp-step-num{
  background:var(--dt-bg-soft); color:var(--dt-text); border-color:var(--dt-text);
}
.tp-steps li.is-done .tp-step-label{ color:var(--dt-text); }
.tp-steps li.is-done .tp-step-num,
.tp-steps li.is-done .tp-step-label{ cursor:pointer; }

.tp-step-head{ margin:0 0 18px; }
.tp-step-head h3{
  margin:0 0 4px; font-size:17px; font-weight:900; color:var(--dt-text);
}
.tp-step-head p{ margin:0; font-size:12.5px; color:var(--dt-muted); line-height:1.85; }

.tp-step-nav{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin:22px 0 0; padding-top:20px; border-top:2px solid var(--dt-border);
}
.tp-step-nav .tp-step-count{
  margin-left:auto; font-family:var(--dt-font-num); font-size:12.5px; color:var(--dt-muted);
}
.tp-nav-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:46px; padding:0 26px;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  font-family:var(--dt-font-ui); font-size:14px; font-weight:700; cursor:pointer;
}
.tp-nav-next{
  background:var(--dt-text) !important; color:#FFF8EC !important;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
}
.tp-nav-next:hover{ background:#4a3520 !important; }
.tp-nav-back{
  background:#fff !important; color:var(--dt-text) !important; box-shadow:none !important;
}
.tp-nav-back:hover{ background:var(--dt-bg-soft) !important; }

/* 項目 */
.dt-contributor-form .dt-contributor-field{
  display:block; margin:0 0 18px;
  font-size:13px; font-weight:700; color:var(--dt-text);
}
.dt-contributor-form input[type="text"],
.dt-contributor-form input[type="email"],
.dt-contributor-form input[type="tel"],
.dt-contributor-form input[type="url"],
.dt-contributor-form input[type="number"],
.dt-contributor-form input[type="search"],
.dt-contributor-form textarea,
.dt-contributor-form select{
  display:block; width:100%; margin-top:7px; padding:11px 14px;
  background:#fff; color:var(--dt-text);
  border:2px solid var(--dt-border) !important; border-radius:12px !important;
  box-shadow:none !important;
  font-family:var(--dt-font-body); font-size:14px; font-weight:400;
}
.dt-contributor-form textarea{ min-height:96px; line-height:1.9; }
.dt-contributor-form input:focus,
.dt-contributor-form textarea:focus,
.dt-contributor-form select:focus{
  border-color:var(--dt-text) !important; outline:none;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
}
/* 未入力の必須欄を最初から赤くしない。触ったあとだけ赤くする（:user-invalid） */
.dt-contributor-form input:user-invalid,
.dt-contributor-form textarea:user-invalid,
.dt-contributor-form select:user-invalid{
  border-color:var(--dt-red) !important;
}
.dt-contributor-form .dt-contributor-help{
  display:block; margin-top:6px;
  font-size:11.5px; font-weight:400; color:var(--dt-muted); line-height:1.8;
}

/* 任意項目のアコーディオン */
.dt-contributor-optional-accordion{
  margin:0 0 18px; padding:0;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-border) !important; border-radius:16px !important;
  overflow:hidden;
}
.dt-contributor-optional-accordion > summary{
  padding:13px 18px; cursor:pointer; list-style:none;
  font-size:13.5px; font-weight:700; color:var(--dt-text);
}
.dt-contributor-optional-accordion > summary::-webkit-details-marker{ display:none; }
.dt-contributor-optional-accordion[open] > summary{ border-bottom:2px solid var(--dt-border); }
.dt-contributor-optional-accordion > *:not(summary){ padding:14px 18px 18px; }

/* 画像アップロード：未入力の面は点線（スタイルガイド03） */
.dt-contributor-upload-field{
  margin:0 0 18px; padding:16px 18px;
  background:var(--dt-bg-soft);
  border:2px dashed var(--dt-border) !important; border-radius:16px !important;
  font-size:13px; font-weight:700; color:var(--dt-text);
}
.dt-contributor-upload-clear{
  margin-left:10px; padding:0 !important; background:none !important; border:0 !important;
  box-shadow:none !important; color:var(--dt-muted) !important;
  font-size:12px; font-weight:700; text-decoration:underline; cursor:pointer;
}

/* 同意欄 */
.dt-form-security{
  margin:6px 0 16px !important; padding:14px 18px;
  background:var(--dt-bg-soft); border:2px solid var(--dt-border); border-radius:16px;
  font-size:12.5px; color:var(--dt-body); line-height:1.85;
}
.dt-form-security input[type="checkbox"]{ width:18px; height:18px; accent-color:var(--dt-green); margin-right:8px; }

/* 送信 */
.dt-contributor-submit-cta-wrap{ margin:8px 0 0; }
.dt-contributor-form button[type="submit"],
.dt-contributor-form .dt-contributor-submit-button{
  display:inline-flex; align-items:center; justify-content:center;
  width:100%; min-height:50px; padding:0 26px;
  background:var(--dt-green) !important; color:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
  font-family:var(--dt-font-ui); font-size:15px; font-weight:700 !important; cursor:pointer;
}
.dt-contributor-form button[type="submit"]:hover{ background:#54941f !important; }
.dt-contributor-form .dt-contributor-button:not([type="submit"]):not(.dt-contributor-upload-clear):not(.tp-nav-btn){
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  background:#fff !important; color:var(--dt-text) !important;
  box-shadow:none !important; min-height:42px; padding:0 20px;
  font-weight:700 !important;
}

/* 送信完了のお知らせ（推薦した店舗・施設タブの先頭） */
.tp-submitted-notice{ margin:0 0 16px; }

@media (max-width:960px){
  .tp-submit-split{ grid-template-columns:1fr; }
  .tp-submit-aside{ position:static; order:-1; }
}
@media (max-width:560px){
  .tp-step-label{ font-size:11px; }
  .tp-steps li::before{ margin-right:16px; }
  .tp-steps li::after{ margin-left:16px; }
}
/* dt-town-pop-mypage */
/* ============================================================
   マイページ（アートボード08）
   ============================================================ */

/* ---- プロフィール帯 ---- */
.dt-contributor-header{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px;
  margin:0 0 22px; padding:24px 26px;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-text); border-radius:22px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
}
.dt-contributor-header-identity{ display:flex; align-items:center; gap:16px; }
.dt-contributor-header-identity .dt-user-avatar{
  width:64px; height:64px; border-radius:999px; overflow:hidden;
  border:2px solid var(--dt-text); background:#fff;
  display:inline-flex; align-items:center; justify-content:center;
}
.dt-contributor-header-identity .dt-user-avatar img{ width:100%; height:100%; object-fit:cover; }
.dt-contributor-header-identity h2{
  margin:0 0 6px; font-size:clamp(19px,2.2vw,26px); font-weight:900; color:var(--dt-text);
}
.dt-contributor-header-identity .dt-contributor-help{
  margin:0; font-size:12.5px; color:var(--dt-muted); display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
.dt-contributor-rank-badge,
.dt-contributor-rank-badge-large{
  display:inline-flex; align-items:center; padding:4px 12px;
  background:#fff !important; color:var(--dt-text) !important;
  border:1.5px solid var(--dt-text) !important; border-radius:999px !important;
  font-size:11.5px; font-weight:700; line-height:1.4;
}
.dt-contributor-rank-badge-large{ padding:6px 16px; font-size:13px; }
.dt-contributor-logout{
  display:inline-flex; align-items:center; min-height:40px; padding:0 20px;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  font-size:13px; font-weight:700;
}
.dt-contributor-logout:hover{ background:var(--dt-bg) !important; text-decoration:none; }

/* ---- タブ（青ピル → 下線タブ） ---- */
.dt-dashboard-tab-nav{
  display:flex; flex-wrap:wrap; gap:6px; margin:0 0 20px; padding:0 0 2px;
  border-bottom:2px solid var(--dt-border);
}
.dt-dashboard-tab-nav button{
  position:relative; min-height:42px; padding:0 16px; margin:0;
  background:transparent !important; color:var(--dt-muted) !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  font-family:var(--dt-font-ui); font-size:13.5px; font-weight:700; cursor:pointer;
}
.dt-dashboard-tab-nav button:hover{ color:var(--dt-text) !important; }
.dt-dashboard-tab-nav button.is-active{ color:var(--dt-text) !important; }
.dt-dashboard-tab-nav button.is-active::after{
  content:""; position:absolute; left:10px; right:10px; bottom:-2px; height:3px;
  background:var(--dt-text); border-radius:3px;
}

/* ---- パネル ---- */
.dt-contributor-summary-card,
.dt-contributor-stats,
.dt-favorite-list-panel,
.dt-contributor-submissions,
.dt-contributor-reviews{
  background:#fff !important;
  border:2px solid var(--dt-text) !important;
  border-radius:20px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
  padding:20px 22px 22px !important;
}
.dt-dashboard-summary-grid{ display:grid; gap:18px; }
.dt-contributor-section-head h2,
.dt-contributor-section-head h3,
.dt-contributor-list-head h2,
.dt-favorites-heading{
  margin:0 0 6px; font-size:16px; font-weight:900; color:var(--dt-text);
}
.dt-contributor-help{ font-size:12.5px; color:var(--dt-muted); line-height:1.85; }

/* ---- 数値カード ---- */
.dt-contributor-review-summary,
.dt-contributor-stat-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; margin-top:14px;
}
.dt-contributor-review-summary-item,
.dt-contributor-stat{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  padding:16px 12px;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-border) !important; border-radius:16px !important;
  box-shadow:none !important;
  text-align:center;
}
.dt-contributor-review-summary-item > :first-child,
.dt-contributor-stat > :first-child{
  font-family:var(--dt-font-num); font-size:24px; font-weight:700; color:var(--dt-text) !important;
  line-height:1.1;
}
.dt-contributor-review-summary-item > :last-child,
.dt-contributor-stat > :last-child{
  font-size:11.5px; font-weight:700; color:var(--dt-muted) !important;
}

/* ---- 進捗バー ---- */
.dt-contributor-progress{ margin-top:16px; }
.dt-contributor-progress-label{ font-size:12.5px; color:var(--dt-body); }
.dt-contributor-progress-highlight{ color:var(--dt-text); font-weight:900; }
.dt-contributor-progress-bar{
  height:14px; margin-top:8px; overflow:hidden;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
}
.dt-contributor-progress-bar > *{
  display:block; height:100%;
  background:var(--dt-green) !important; border-radius:999px 0 0 999px;
}

/* ---- 投稿リスト ---- */
.dt-contributor-list-controls{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0 16px; }
.dt-contributor-list-controls button,
.dt-contributor-list-controls a{
  display:inline-flex; align-items:center; min-height:36px; padding:0 15px;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:none !important; font-size:12.5px; font-weight:700; cursor:pointer;
}
.dt-contributor-list-controls .is-active,
.dt-contributor-list-controls [aria-pressed="true"]{
  background:var(--dt-text) !important; color:#FFF8EC !important;
}
.dt-contributor-submission-grid{ display:grid; gap:12px; }
.dt-contributor-submission,
.dt-contributor-submission-card{
  background:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:18px !important;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
  overflow:hidden;
}
.dt-contributor-submission-card-image{
  background:var(--dt-bg-soft); border-right:2px solid var(--dt-border);
}
.dt-favorite-empty{
  padding:22px; background:var(--dt-bg-soft);
  border:2px dashed var(--dt-border); border-radius:18px;
  color:var(--dt-muted); font-size:13px;
}

/* ============================================================
   2カラム（デザイン08の右カラム）
   ============================================================ */
.tp-mypage-grid{ display:grid; gap:18px; align-items:start; }
.tp-mypage-main{ min-width:0; }
.tp-mypage-rail{ display:grid; gap:14px; min-width:0; }

.tp-rail-card{
  background:#fff !important;
  border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
  padding:18px 18px 20px;
}
.tp-rail-card > h3{
  margin:0 0 10px; font-size:14.5px; font-weight:900; color:var(--dt-text);
}

/* 称号カード */
.tp-rail-rank{ text-align:center; }
.tp-rail-mascot{
  width:96px; height:96px; margin:0 auto 6px; display:block; object-fit:contain;
}
.tp-rail-rank .dt-contributor-current-rank{
  margin:0 0 4px; font-size:12px; color:var(--dt-muted);
}
.tp-rail-rank .dt-contributor-progress{ margin-top:14px; text-align:left; }

/* 次にやること */
.tp-rail-todo ul{ margin:0; padding:0; list-style:none; display:grid; gap:8px; }
.tp-rail-todo li{
  display:flex; align-items:flex-start; gap:9px;
  font-size:12.5px; line-height:1.75; color:var(--dt-body);
}
.tp-rail-todo li b{
  flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
  min-width:24px; height:24px; padding:0 7px; margin-top:1px;
  background:var(--dt-bg-soft); color:var(--dt-text);
  border:2px solid var(--dt-text); border-radius:999px;
  font-family:var(--dt-font-num); font-size:11.5px; font-weight:700;
}
.tp-rail-todo li.is-alert b{ background:#FFE3E0; border-color:#C0392B; color:#8E2A1E; }
.tp-rail-todo button.tp-rail-link{
  padding:0; background:none !important; border:0 !important; box-shadow:none !important;
  color:var(--dt-text) !important; font:inherit; font-weight:700;
  text-decoration:underline; cursor:pointer; text-align:left;
}
.tp-rail-cta{
  display:flex; align-items:center; justify-content:center;
  min-height:44px; margin-top:12px; padding:0 18px;
  background:var(--dt-green) !important; color:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-shadow-color);
  font-size:13.5px; font-weight:700; cursor:pointer; width:100%;
}
.tp-rail-cta:hover{ transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--dt-shadow-color); }
.tp-rail-note{ margin:0; font-size:12px; color:var(--dt-muted); line-height:1.8; }

@media (min-width:900px){
  .dt-dashboard-summary-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1000px){
  /* この画面の器は `.dt-container.dt-narrow` が width:840px 固定で、右カラムを入れると
     左が痩せる（実測 428px）。マイページのときだけ広げる。
     `:has()` が使えないブラウザでは 840px のまま＝ただ狭いだけで壊れない。 */
  .dt-container.dt-narrow:has(.dt-contributor-dashboard){ width:min(1180px,100%) !important; }
  .dt-contributor-dashboard{ max-width:none !important; }

  .tp-mypage-grid{ grid-template-columns:minmax(0,1fr) 320px; }
  /* 右カラムが入るぶん、左の2枚並びは器が広いときだけにする */
  .tp-mypage-grid .dt-dashboard-summary-grid{ grid-template-columns:1fr; }
}
@media (min-width:1400px){
  .tp-mypage-grid .dt-dashboard-summary-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px){
  .dt-contributor-header{ padding:18px 18px; }
  .dt-contributor-header-identity .dt-user-avatar{ width:52px; height:52px; }
  .tp-rail-mascot{ width:76px; height:76px; }
}
/* dt-town-pop-owner */
/* ============================================================
   オーナー管理（アートボード10）
   ============================================================ */
.tp-owner-wide{ max-width:1180px !important; }

/* ---- ヘッダー帯 ---- */
.dt-owner-header{
  display:flex !important; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;
  margin:0 0 22px; padding:22px 26px;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-text); border-radius:22px;
  box-shadow:4px 4px 0 var(--dt-shadow-color);
}
.dt-owner-header h2{
  margin:0 0 4px; font-size:clamp(20px,2.3vw,27px); font-weight:900; color:var(--dt-text);
}
.dt-owner-header .dt-owner-help{
  margin:0; font-size:12.5px; color:var(--dt-muted); line-height:1.7;
}
.dt-owner-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.dt-owner-add-listing{
  display:inline-flex; align-items:center; min-height:44px; padding:0 22px;
  background:var(--dt-green) !important; color:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
  font-family:var(--dt-font-ui); font-size:13.5px; font-weight:700;
}
.dt-owner-add-listing:hover{ background:#54941f !important; text-decoration:none; }
.dt-owner-logout{
  display:inline-flex; align-items:center; min-height:44px; padding:0 20px;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:none !important; font-size:13px; font-weight:700;
}
.dt-owner-logout:hover{ background:var(--dt-bg) !important; text-decoration:none; }

/* ---- 件数タイル ---- */
.dt-owner-summary{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px;
  margin:0 0 22px; padding:0 !important;
  background:none !important; border:0 !important; box-shadow:none !important;
}
.dt-owner-summary > *{
  display:flex; flex-direction:column; gap:4px;
  padding:14px 16px;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-border) !important; border-radius:16px !important;
  box-shadow:none !important;
}
.dt-owner-summary > * > span{
  font-size:11.5px; font-weight:700; color:var(--dt-muted) !important; letter-spacing:.02em;
}
.dt-owner-summary > * > strong{
  font-family:var(--dt-font-num); font-size:26px; font-weight:700; line-height:1.05;
  color:var(--dt-text) !important;
}

/* ---- 絞り込み欄（JSで挿入） ---- */
.tp-owner-filter{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px;
  margin:0 0 16px; padding:14px 18px;
  background:#fff; border:2px solid var(--dt-text); border-radius:18px;
  box-shadow:3px 3px 0 var(--dt-shadow-color);
}
.tp-owner-filter label{ font-size:12.5px; font-weight:700; color:var(--dt-text); }
.tp-owner-filter input[type="search"],
.tp-owner-filter input[type="text"]{
  flex:1 1 240px; min-width:180px; padding:10px 14px;
  background:var(--dt-bg-soft); color:var(--dt-text);
  border:2px solid var(--dt-border) !important; border-radius:12px !important;
  box-shadow:none !important;
  font-family:var(--dt-font-body); font-size:14px;
}
.tp-owner-filter input:focus{
  border-color:var(--dt-text) !important; outline:none; background:#fff;
}
.tp-owner-count{
  font-family:var(--dt-font-num); font-size:12.5px; font-weight:600; color:var(--dt-muted);
  white-space:nowrap;
}
.tp-owner-hidden{ display:none !important; }
.tp-owner-more{
  display:block; width:100%; min-height:46px; margin:16px 0 0; padding:0 24px;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:none !important;
  font-family:var(--dt-font-ui); font-size:13.5px; font-weight:700; cursor:pointer;
}
.tp-owner-more:hover{ background:var(--dt-bg-soft) !important; }
.tp-owner-none{
  padding:22px; margin:0;
  background:var(--dt-bg-soft); border:2px dashed var(--dt-border); border-radius:18px;
  color:var(--dt-muted); font-size:13.5px;
}

/* ---- 店舗カード ---- */
.dt-owner-listings{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr)) !important; gap:14px !important;
  margin:0 0 32px;
}
.dt-owner-listing-card{
  display:flex; flex-direction:column; gap:8px;
  padding:16px 18px 18px !important;
  background:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:18px !important;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
  transition:transform .14s ease, box-shadow .14s ease;
}
.dt-owner-listing-card:hover{
  transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
}
.dt-owner-listing-card h3{
  margin:0; font-size:15px; font-weight:900; color:var(--dt-text); line-height:1.5;
}
.dt-owner-listing-card > p{
  margin:0; font-size:12px; color:var(--dt-muted); line-height:1.8;
}
.dt-owner-listing-card > p:last-child{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px;
  margin-top:auto; padding-top:10px; border-top:1.5px solid var(--dt-border);
}
.dt-owner-button{
  display:inline-flex; align-items:center; min-height:36px; padding:0 16px;
  background:var(--dt-text) !important; color:#FFF8EC !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:none !important;
  font-family:var(--dt-font-ui); font-size:12.5px; font-weight:700; cursor:pointer;
}
.dt-owner-button:hover{ background:#4a3520 !important; text-decoration:none; }
.dt-owner-link{
  color:var(--dt-muted) !important; font-size:12px; font-weight:700; text-decoration:underline;
}
.dt-owner-link:hover{ color:var(--dt-text) !important; }
/* 公開中でない店舗（1.1.0） */
.tp-owner-private{
  display:inline-flex; align-items:center; gap:6px;
  padding:2px 10px; border:1.5px dashed var(--dt-border); border-radius:999px;
  font-size:11.5px; font-weight:700; color:var(--dt-muted);
}

/* ---- 掲載申請パネル ---- */
.dt-owner-application-card{
  padding:22px 24px 24px !important; margin:0 0 48px !important;
  background:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:22px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
}
.dt-owner-application-card-head{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px;
}
.dt-owner-application-card-head h3{
  margin:0 0 4px; font-size:16px; font-weight:900; color:var(--dt-text);
}
.dt-owner-application-card-head .dt-owner-help{
  margin:0; max-width:56ch; font-size:12.5px; color:var(--dt-muted); line-height:1.85;
}
.dt-owner-application-card-body{ margin-top:20px; }
.dt-owner-application-field{
  display:block; margin:0 0 16px;
  font-size:13px; font-weight:700; color:var(--dt-text);
}
.dt-owner-application-form input[type="text"],
.dt-owner-application-form input[type="email"],
.dt-owner-application-form input[type="tel"],
.dt-owner-application-form input[type="url"],
.dt-owner-application-form input[type="number"],
.dt-owner-application-form textarea,
.dt-owner-application-form select{
  display:block; width:100%; margin-top:7px; padding:11px 14px;
  background:#fff; color:var(--dt-text);
  border:2px solid var(--dt-border) !important; border-radius:12px !important;
  box-shadow:none !important;
  font-family:var(--dt-font-body); font-size:14px; font-weight:400;
}
.dt-owner-application-form textarea{ min-height:92px; line-height:1.9; }
.dt-owner-application-form input:focus,
.dt-owner-application-form textarea:focus,
.dt-owner-application-form select:focus{
  border-color:var(--dt-text) !important; outline:none;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
}
.dt-owner-application-feature-box{
  margin:0 0 18px; padding:14px 18px 16px;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-border) !important; border-radius:16px !important;
}
.dt-owner-application-feature-box legend{
  padding:0 6px; font-size:12.5px; font-weight:700; color:var(--dt-text);
}
.dt-owner-application-form .dt-owner-help{
  display:block; margin-top:6px;
  font-size:11.5px; font-weight:400; color:var(--dt-muted); line-height:1.8;
}
.dt-add-listing-submit-cta-wrap{ margin:8px 0 0; }
.dt-owner-application-form button[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 30px;
  background:var(--dt-text) !important; color:#FFF8EC !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
  font-family:var(--dt-font-ui); font-size:14.5px; font-weight:700 !important; cursor:pointer;
}
.dt-owner-application-form button[type="submit"]:hover{ background:#4a3520 !important; }

/* ============================================================
   店舗の編集フォーム（?dt_owner_listing=ID）1.1.0
   利用者側の作法：太枠＋ずらし影。セクションは生成り濃の面、入力欄は白。
   ============================================================ */
.dt-owner-form{
  display:flex !important; flex-direction:column; gap:18px;
  margin:0 0 48px !important; padding:24px 26px 0 !important;
  background:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:22px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
  font-family:var(--dt-font-body); color:var(--dt-body);
}
.dt-owner-form > h3{
  margin:0 !important; font-size:clamp(19px,2.2vw,24px); font-weight:900; color:var(--dt-text);
}
.dt-owner-form > p{ margin:0 !important; }

/* 項目 */
.dt-owner-form .dt-owner-field{
  display:block !important; margin:0 !important;
  font-size:13px; font-weight:700; color:var(--dt-text);
}
.dt-owner-form .dt-owner-field > span:first-child{ display:block; margin-bottom:7px; }
.dt-owner-form input[type="text"],
.dt-owner-form input[type="email"],
.dt-owner-form input[type="tel"],
.dt-owner-form input[type="url"],
.dt-owner-form input[type="number"],
.dt-owner-form input[type="time"],
.dt-owner-form textarea:not(.wp-editor-area),
.dt-owner-form select{
  display:block; width:100%; max-width:100%; padding:10px 13px !important;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-border) !important; border-radius:12px !important;
  box-shadow:none !important;
  font-family:var(--dt-font-body); font-size:14px; font-weight:400; line-height:1.6;
}
.dt-owner-form textarea:not(.wp-editor-area){ min-height:88px; line-height:1.9; }
.dt-owner-form input:focus,
.dt-owner-form textarea:focus,
.dt-owner-form select:focus{
  border-color:var(--dt-text) !important; outline:none;
  box-shadow:3px 3px 0 var(--dt-shadow-color) !important;
}
.dt-owner-form .dt-owner-help{
  display:block; margin:6px 0 0 !important;
  font-size:11.5px !important; font-weight:400; color:var(--dt-muted) !important; line-height:1.8;
}

/* 説明文エディタ */
.dt-owner-form .dt-owner-editor-field .wp-editor-wrap{
  border:2px solid var(--dt-border); border-radius:12px; overflow:hidden; background:#fff;
}
.dt-owner-form .dt-owner-editor-field .wp-editor-tabs{ padding:4px 6px 0; }
.dt-owner-form .dt-owner-editor-field .mce-tinymce,
.dt-owner-form .dt-owner-editor-field .quicktags-toolbar{ border:0 !important; box-shadow:none !important; }

/* セクションの面（Q&A・営業時間・設備・分類・連絡先…・画像） */
.dt-owner-form .dt-owner-qna-box,
.dt-owner-form .dt-owner-hours,
.dt-owner-form .dt-owner-feature-box,
.dt-owner-form .dt-owner-field-section,
.dt-owner-form .dt-owner-hero-editor,
.dt-owner-form .dt-owner-logo-editor,
.dt-owner-form .dt-owner-gallery-editor{
  display:block; margin:0 !important; padding:16px 18px 18px !important; min-width:0;
  background:var(--dt-bg-soft) !important;
  border:2px solid var(--dt-border) !important; border-radius:18px !important;
  box-shadow:none !important;
}
.dt-owner-form fieldset.dt-owner-feature-box,
.dt-owner-form fieldset.dt-owner-field-section{ padding-top:10px !important; }
.dt-owner-form .dt-owner-field-section > legend,
.dt-owner-form .dt-owner-feature-box > legend{
  float:left; width:100%; margin:0 0 10px; padding:6px 0 0 !important;
  font-size:14.5px; font-weight:900; color:var(--dt-text);
  background:none !important; border:0 !important;
}
.dt-owner-form .dt-owner-field-section > legend + *,
.dt-owner-form .dt-owner-feature-box > legend + *{ clear:both; }
.dt-owner-form .dt-owner-qna-box h4,
.dt-owner-form .dt-owner-hours h4,
.dt-owner-form .dt-owner-hero-editor h4,
.dt-owner-form .dt-owner-logo-editor h4,
.dt-owner-form .dt-owner-gallery-editor h4{
  margin:0 0 6px !important; font-size:14.5px; font-weight:900; color:var(--dt-text);
}
.dt-owner-form .dt-owner-qna-item{
  margin:12px 0 0; padding:12px 14px 14px;
  background:#fff; border:2px solid var(--dt-border); border-radius:14px;
  display:grid; gap:10px;
}
.dt-owner-form .dt-owner-qna-item h5{ margin:0; font-size:12.5px; font-weight:900; color:var(--dt-text); }

/* 連絡先などの並び */
.dt-owner-form .dt-owner-field-grid{
  display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px;
}
.dt-owner-form .dt-owner-field-grid.is-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }

/* 営業時間 */
.dt-owner-form .dt-owner-hours-copy{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:10px 0 12px;
}
.dt-owner-form .dt-owner-hours-copy .dt-owner-help{ margin:0 !important; }
.dt-owner-form .dt-owner-hours-table{
  background:#fff; border:2px solid var(--dt-border); border-radius:14px; overflow:hidden;
}
.dt-owner-form .dt-owner-hours-row{
  display:grid !important; grid-template-columns:44px 72px repeat(4,minmax(0,1fr));
  align-items:center; gap:8px; padding:8px 12px; border-top:1.5px solid var(--dt-border);
}
.dt-owner-form .dt-owner-hours-row:first-child{ border-top:0; }
.dt-owner-form .dt-owner-hours-head{
  background:var(--dt-bg-soft); font-size:11.5px; font-weight:700; color:var(--dt-muted);
}
.dt-owner-form .dt-owner-hours-row > strong{ font-size:13.5px; font-weight:900; color:var(--dt-text); }
.dt-owner-form .dt-owner-hours-row > label:not(.dt-hours-cell){
  display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:var(--dt-text);
}
.dt-owner-form .dt-owner-hours-row input[type="time"]{ padding:7px 8px !important; font-size:13px; }
.dt-owner-form .dt-hours-cell-label{ display:none; }
.dt-owner-form input[type="checkbox"]{ width:17px; height:17px; accent-color:var(--dt-green); }

/* 設備・分類のチェック欄 */
.dt-owner-form .dt-checkbox-list,
.dt-owner-form .dt-owner-feature-grid{
  display:grid !important; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:6px 12px;
  margin:8px 0 0 !important; padding:0 !important; list-style:none;
}
.dt-owner-form .dt-checkbox-list label,
.dt-owner-form .dt-owner-feature-grid label{
  display:flex; align-items:center; gap:7px; font-size:13px; font-weight:400; color:var(--dt-body);
}
.dt-owner-form .dt-taxonomy-accordion,
.dt-owner-form .dt-feature-group{
  margin:8px 0 0; background:#fff; border:2px solid var(--dt-border); border-radius:14px; overflow:hidden;
}
.dt-owner-form .dt-taxonomy-accordion > summary,
.dt-owner-form .dt-feature-group > summary{
  padding:10px 14px; cursor:pointer; font-size:13px; font-weight:700; color:var(--dt-text); list-style:none;
}
.dt-owner-form .dt-taxonomy-accordion > summary::-webkit-details-marker,
.dt-owner-form .dt-feature-group > summary::-webkit-details-marker{ display:none; }
.dt-owner-form .dt-taxonomy-accordion[open] > summary,
.dt-owner-form .dt-feature-group[open] > summary{ border-bottom:1.5px solid var(--dt-border); }
.dt-owner-form .dt-taxonomy-accordion > *:not(summary),
.dt-owner-form .dt-feature-group > *:not(summary){ padding:10px 14px 12px; }

/* 画像（ヒーロー・ロゴ・ギャラリー） */
.dt-owner-form .dt-owner-hero-preview,
.dt-owner-form .dt-owner-logo-preview,
.dt-owner-form .dt-owner-gallery-preview{
  display:flex; flex-wrap:wrap; gap:10px; margin:10px 0;
}
.dt-owner-form .dt-owner-hero-preview img,
.dt-owner-form .dt-owner-logo-preview img,
.dt-owner-form .dt-owner-gallery-preview img{
  border:2px solid var(--dt-text); border-radius:12px; max-width:100%; height:auto;
}
.dt-owner-form .dt-owner-gallery-empty{
  padding:14px; border:2px dashed var(--dt-border); border-radius:12px; background:#fff;
  font-size:12.5px; color:var(--dt-muted);
}

/* ボタン類 */
.dt-owner-form .dt-owner-button:not([type="submit"]),
.dt-owner-form .dt-owner-copy-btn{
  display:inline-flex; align-items:center; min-height:38px; padding:0 18px;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:none !important; font-size:12.5px; font-weight:700; cursor:pointer;
}
.dt-owner-form .dt-owner-button:not([type="submit"]):hover,
.dt-owner-form .dt-owner-copy-btn:hover{ background:var(--dt-bg-soft) !important; }
.dt-owner-form .dt-owner-link-button,
.dt-owner-form .dt-owner-gallery-remove{
  padding:0 !important; margin-left:10px; background:none !important; border:0 !important; box-shadow:none !important;
  color:var(--dt-muted) !important; font-size:12px; font-weight:700; text-decoration:underline; cursor:pointer;
}

/* 保存：画面の下に固定（長いフォームなので、どこからでも保存できるように） */
.dt-owner-form .dt-owner-submit-row{
  position:sticky; bottom:0; z-index:5;
  margin:4px -26px 0 !important; padding:14px 26px !important;
  background:rgba(255,255,255,.96) !important;
  border-top:2px solid var(--dt-text); border-radius:0 0 20px 20px;
}
.dt-owner-form .dt-owner-submit-row .dt-owner-button[type="submit"]{
  display:flex; justify-content:center; width:100%; min-height:50px; padding:0 26px;
  background:var(--dt-green) !important; color:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
  font-size:15px; font-weight:700;
}
.dt-owner-form .dt-owner-submit-row .dt-owner-button[type="submit"]:hover{ background:#54941f !important; }

@media (max-width:760px){
  .dt-owner-form{ padding:18px 16px 0 !important; }
  .dt-owner-form .dt-owner-field-grid,
  .dt-owner-form .dt-owner-field-grid.is-3{ grid-template-columns:1fr; }
  .dt-owner-form .dt-owner-hours-head{ display:none !important; }
  .dt-owner-form .dt-owner-hours-row{ grid-template-columns:1fr 1fr; }
  .dt-owner-form .dt-owner-hours-row > strong{ grid-column:1; }
  .dt-owner-form .dt-owner-hours-row > label:not(.dt-hours-cell){ grid-column:2; justify-self:end; }
  .dt-owner-form .dt-hours-cell-label{ display:block; font-size:11px; font-weight:700; color:var(--dt-muted); margin-bottom:3px; }
  .dt-owner-form .dt-owner-submit-row{ margin:4px -16px 0 !important; padding:12px 16px !important; }
}

@media (max-width:640px){
  .dt-owner-header{ padding:18px; }
  .dt-owner-actions{ width:100%; }
  .dt-owner-add-listing,.dt-owner-logout{ flex:1 1 auto; justify-content:center; }
}
/* dt-town-pop-pages */
/* ============================================================
   見出し帯（固定ページ・タクソノミー・その他）
   ============================================================ */
.dt-page-header{ padding:40px 0 28px; }
.dt-page-header h1{
  margin:0; font-weight:900; line-height:1.3; color:var(--dt-text);
  font-size:clamp(26px,3.2vw,40px); letter-spacing:.01em;
}
.dt-page-header .dt-kicker,
.tp-kicker{
  margin:0 0 6px; font-family:var(--dt-font-num); font-size:12px;
  letter-spacing:.12em; font-weight:700; color:var(--dt-muted);
}
.dt-term-description{
  margin:12px 0 0; max-width:62ch;
  font-size:14px; line-height:1.9; color:var(--dt-muted);
}
.dt-term-description p{ margin:0; }

/* ============================================================
   固定ページの本文（About / お問い合わせ / 利用規約 など）
   アプリ側の器（07・08）には当てない。dt-content-area-app が目印。
   ============================================================ */
.dt-content-area:not(.dt-content-area-app) > .dt-content{
  font-size:16px; line-height:2.05; color:var(--dt-body);
}
.dt-content-area:not(.dt-content-area-app) > .dt-content p{ margin:0 0 20px; }
.dt-content-area:not(.dt-content-area-app) > .dt-content h2{
  margin:36px 0 14px; font-size:clamp(19px,1.9vw,24px);
  font-weight:900; color:var(--dt-text); line-height:1.5;
}
.dt-content-area:not(.dt-content-area-app) > .dt-content h3{
  margin:28px 0 10px; font-size:17px; font-weight:900; color:var(--dt-text);
}
.dt-content-area:not(.dt-content-area-app) > .dt-content ul,
.dt-content-area:not(.dt-content-area-app) > .dt-content ol{
  margin:0 0 20px; padding-left:1.4em;
}
.dt-content-area:not(.dt-content-area-app) > .dt-content li{ margin:0 0 8px; }
.dt-content-area:not(.dt-content-area-app) > .dt-content a{
  color:var(--dt-text) !important; text-decoration:underline; text-underline-offset:3px;
}
.dt-content-area:not(.dt-content-area-app) > .dt-content img{
  border:2px solid var(--dt-text); border-radius:14px;
}
.dt-content-area:not(.dt-content-area-app) > .dt-content table{
  width:100%; border-collapse:collapse; margin:0 0 24px;
  border:2px solid var(--dt-text); border-radius:16px; overflow:hidden;
}
.dt-content-area:not(.dt-content-area-app) > .dt-content th,
.dt-content-area:not(.dt-content-area-app) > .dt-content td{
  padding:12px 14px; border-bottom:1px solid var(--dt-border);
  font-size:14px; text-align:left; vertical-align:top;
}
.dt-content-area:not(.dt-content-area-app) > .dt-content th{
  background:var(--dt-bg-soft); color:var(--dt-text); font-weight:700; white-space:nowrap;
}
.dt-content-area:not(.dt-content-area-app) > .dt-content > *:last-child{ margin-bottom:0; }

/* ============================================================
   検索結果（テンプレートは dt-townpop-tpl/search.php）
   `.tp-search` の指定はホーム専用なので、ここで同じ部品を持ち直す
   ============================================================ */
.tp-search-header .tp-art-lead{ margin-top:6px; max-width:64ch; }
.tp-search-inline{
  display:flex; align-items:center; gap:8px;
  margin:20px 0 0; padding:7px 8px 7px 20px; max-width:520px;
  background:#fff; border:2px solid var(--dt-text); border-radius:999px;
  box-shadow:4px 4px 0 rgba(59,42,24,.22);
}
.tp-search-inline input{
  align-self:stretch; flex:1 1 auto; min-width:0;
  border:0 !important; background:transparent !important;
  font-family:var(--dt-font-body); font-size:15px; color:var(--dt-text); outline:none;
}
.tp-search-inline input::placeholder{ color:var(--dt-muted); }
/* この画面の緑は「店舗・施設を探す」1つだけ。検索ボタンはこげ茶にする */
.tp-search-inline button{
  flex:0 0 auto; min-height:44px; padding:0 24px;
  background:var(--dt-text); color:#FFF8EC;
  border:2px solid var(--dt-text); border-radius:999px;
  font-family:var(--dt-font-ui); font-weight:700; cursor:pointer;
}
.tp-search-inline button:hover{ background:#2c1f11; }

.tp-search-cross{ margin:16px 0 0; }
.tp-search-cross-btn{
  display:inline-flex; align-items:center; min-height:44px; padding:0 22px;
  background:var(--dt-green); color:#fff !important;
  border:2px solid var(--dt-text); border-radius:999px;
  box-shadow:3px 3px 0 var(--dt-text);
  font-family:var(--dt-font-ui); font-size:14px; font-weight:700;
}
.tp-search-cross-btn:hover{ background:#54941f; text-decoration:none; }

/* 種別チップ。`?s=` は記事・ページ・店舗をまとめて拾うので、何なのかを必ず出す */
.tp-search-kind{
  display:inline-flex; align-items:center; padding:2px 10px;
  background:var(--dt-bg-soft); border:1.5px solid var(--dt-border); border-radius:999px;
  color:var(--dt-text); font-size:11px; font-weight:700; line-height:1.7;
}
.tp-search-kind-dt_listing{ background:#fff; border-color:var(--dt-text); }
.tp-art-meta .tp-search-kind + time{ color:var(--dt-muted); }

.tp-art-empty-lead{ margin:0 0 8px; font-size:15px; font-weight:700; color:var(--dt-text); line-height:1.7; }
.tp-art-empty-sub{ margin:0 0 14px; font-size:13px; color:var(--dt-muted); line-height:1.9; }
.tp-art-empty-actions{ margin:0; font-size:13px; font-weight:700; }
.tp-art-empty-actions a{ color:var(--dt-text) !important; }

/* ============================================================
   404
   ============================================================ */
.dt-not-found{ padding:44px 0 64px; }
.dt-not-found-inner{
  display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr);
  gap:40px; align-items:center;
}
/* マッピーのときは画像の幅に合わせて詰める（300px固定だと左が間延びする） */
.dt-not-found-inner:has(.has-mascot){
  grid-template-columns:minmax(0,auto) minmax(0,1fr); gap:36px;
}
.dt-not-found-visual{ margin:0; }
.dt-not-found-visual img{
  display:block; width:100%; height:auto;
  background:var(--dt-bg-soft);
  border:2px solid var(--dt-text); border-radius:22px;
  box-shadow:5px 5px 0 var(--dt-shadow-color);
}

/* ---- マッピーに切り替わったとき ----
   枠・背景・ぼかし影・角丸は **親**（.dt-not-found-visual）に付いている。
   620px以下ではさらに親に aspect-ratio:4/3、img に width:200%/height:100%/
   object-fit:cover/object-position:left center が入り、縦長のマッピーが切られる。
   打ち消しは親と子の両方＋ !important が要る（テーマの方が後ろのメディアクエリにいるため）。
   マスコットは囲みも影も付けず面の上に直接置く＝スタイルガイド05。 */
.dt-not-found-visual.has-mascot{
  justify-self:center;
  max-width:none !important;
  width:auto !important;
  height:auto !important;
  aspect-ratio:auto !important;
  overflow:visible !important;
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
.dt-not-found-visual.has-mascot img{
  display:block;
  width:auto !important;
  max-width:100% !important;
  height:auto !important;
  max-height:240px;
  object-fit:contain !important;
  object-position:center !important;
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

/* キッカーが #1B9CE8（デザインセットの青）だった。この画面に青を置く理由が無い */
.dt-not-found-kicker{
  margin:0 0 8px !important; color:var(--dt-muted) !important;
  font-family:var(--dt-font-num); font-size:12px; letter-spacing:.12em; font-weight:700;
}
.dt-not-found h1{
  margin:0 0 14px; font-size:clamp(26px,3vw,38px);
  font-weight:900; line-height:1.35; color:var(--dt-text);
}
.dt-not-found-content > p{
  margin:0 0 24px; max-width:52ch; font-size:14px; line-height:1.95; color:var(--dt-body);
}
.dt-not-found-actions{ display:flex; flex-wrap:wrap; gap:12px; }

/* ============================================================
   index.php フォールバック（日付アーカイブなど）
   ============================================================ */
.dt-post-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:20px; }
.dt-post-card{
  background:#fff; border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:4px 4px 0 var(--dt-shadow-color); overflow:hidden; padding:0 0 16px;
}
.dt-post-card img{ display:block; width:100%; aspect-ratio:16/10; object-fit:cover; border-bottom:2px solid var(--dt-text); }
.dt-post-card h2{ margin:14px 16px 8px; font-size:17px; font-weight:900; line-height:1.45; }
.dt-post-card h2 a{ color:var(--dt-text) !important; }
.dt-post-card .dt-excerpt{ margin:0 16px; font-size:13px; line-height:1.85; color:var(--dt-body); }

@media (max-width:760px){
  .dt-page-header{ padding:28px 0 20px; }
  .dt-not-found{ padding:28px 0 44px; }
  .dt-not-found-inner{ grid-template-columns:1fr; gap:24px; }
  .dt-not-found-inner:has(.has-mascot){ grid-template-columns:1fr; gap:20px; }
  /* 元イラスト（横長）のときだけ幅を抑える。マッピーには効かせない */
  .dt-not-found-visual:not(.has-mascot){ max-width:240px; }
  /* マッピーは見出し・本文と同じく中央に置く（1.3.3） */
  .dt-not-found-visual.has-mascot img{ max-height:190px; margin-left:auto; margin-right:auto; }
  .tp-search-inline{ padding-left:16px; }
  .tp-search-inline button{ padding:0 18px; }
}
/* dt-town-pop-mascot */
:root{
  --tp-m-wave:url("https://discover.town/includes/images/mappy/green/mappy_wave.webp?v=1789097669");
  --tp-m-thumbsup:url("https://discover.town/includes/images/mappy/green/mappy_thumbsup.webp?v=1789097668");
  --tp-m-thinking:url("https://discover.town/includes/images/mappy/green/mappy_thinking-a.webp?v=1789097668");
  --tp-m-walk:url("https://discover.town/includes/images/mappy/green/mappy_walk.webp?v=1789097669");
  --tp-m-point:url("https://discover.town/includes/images/mappy/green/mappy_point-right.webp?v=1789097668");
}
/* ============================================================
   2. 大きさはデザインの画面に合わせる（1.3.0）。02 見出し帯はデザイン 104px（テーマ側 96px）。
      モバイル（64px）と 08 称号（76px）は元の値のまま＝ここでは触らない
   ============================================================ */
@media (min-width:641px){
  .tp-browse-top .tp-browse-mascot{ width:104px; height:104px; }
}

/* ============================================================
   トップのヒーロー（デザイン01）：写真枠の左下に、歩くマッピーをはみ出させて立たせる
   ============================================================ */
.tp-hero .tp-hero-media{ position:relative; }
.tp-hero .tp-hero-media::after{
  content:""; position:absolute; left:-56px; bottom:-26px; z-index:2;
  width:190px; height:190px; pointer-events:none;
  background:var(--tp-m-walk) center / contain no-repeat;
}
@media (max-width:1180px){
  .tp-hero .tp-hero-media::after{ left:-20px; }
}
@media (max-width:960px){
  .tp-hero .tp-hero-media::after{ left:-6px; bottom:-20px; width:120px; height:120px; }
}

/* ============================================================
   3. トップの投稿を促す欄（左＝登録 wave／右＝推薦 thumbsup）。デザイン01どおり 110px（モバイル 80px）
   zz-sweep.php の `.tp-cta-mascot{display:none !important}` と `.tp-cta-col{gap:0 !important}` を
   詳細度で上書きする（こちらもクラス3つ＋ !important）。
   ============================================================ */
.tp-cta .tp-cta-col{ gap:18px !important; }
.tp-cta .tp-cta-col .tp-cta-mascot{
  display:block !important;
  flex:0 0 auto; width:110px; height:110px;
  background:var(--tp-m-wave) center / contain no-repeat !important;
  border-radius:0 !important;
}
.tp-cta .tp-cta-col .tp-cta-mascot-b{ background-image:var(--tp-m-thumbsup) !important; }
@media (max-width:560px){
  .tp-cta .tp-cta-col .tp-cta-mascot{ width:80px; height:80px; }
}

/* ============================================================
   4. 空状態（thinking-a）／ログイン・推薦の入口（wave）／下部の推薦CTA（thumbsup）
   ::before の背景画像で置く。親のレイアウト（grid の列・flex の並び）は崩さない。
   ============================================================ */
/* 検索0件（div）・記事一覧0件（p。子要素なしで文字が直に入る）。どちらも左寄せ */
.tp-art-empty::before{
  content:""; display:block; width:96px; height:96px; margin:0 0 14px;
  background:var(--tp-m-thinking) left bottom / contain no-repeat;
}
/* 一覧・タクソノミー・マイページなどの0件（.dt-empty）。
   文字の寄せ（左/中央）がページで違うので inline-block にして text-align に従わせる */
.dt-empty::before{
  content:""; display:inline-block; vertical-align:top;
  width:96px; height:96px; margin:0 0 12px;
  background:var(--tp-m-thinking) center bottom / contain no-repeat;
}
/* マイページ（08）の空状態：行きたいリスト0件（.dt-favorite-empty）・レビュー0件。
   デザイン08の空状態は 130px。レビュー0件は面が無い素の段落なので、行きたいリストと同じ点線の面にそろえる。
   （レビューがある時は最後の子が一覧になるので、:last-child の段落＝0件の文言だけに当たる） */
.dt-favorite-empty::before,
.dt-contributor-reviews > p.dt-contributor-help:last-child::before{
  content:""; display:block; width:130px; height:130px; margin:0 0 14px;
  background:var(--tp-m-thinking) left bottom / contain no-repeat;
}
.dt-contributor-reviews > p.dt-contributor-help:last-child{
  margin-top:14px; padding:22px;
  background:var(--dt-bg-soft); border:1.5px dashed var(--dt-border); border-radius:16px;
}
@media (max-width:760px){
  .dt-favorite-empty::before,
  .dt-contributor-reviews > p.dt-contributor-help:last-child::before{ width:96px; height:96px; }
}
/* ログイン・新規登録（06）。dt-town-pop-auth.php が JS で作るこげ茶の説明面（flex 縦並び）の天に */
.tp-auth-aside::before{
  content:""; display:block; flex:0 0 auto; width:96px; height:96px; margin:0 0 20px;
  background:var(--tp-m-wave) left bottom / contain no-repeat;
}
/* 「お店を推薦」ページの入口（未ログイン）。「ログインすると推薦できます」の面の左に回り込ませる */
.dt-add-place-page .dt-contributor-auth-intro{ display:flow-root; }
.dt-add-place-page .dt-contributor-auth-intro::before{
  content:""; float:left; width:66px; height:66px; margin:0 16px 0 0;
  background:var(--tp-m-wave) center / contain no-repeat;
}
/* 店舗詳細・記事詳細の下部CTA（推薦へ誘う帯）。本文ブロック（h2＋p）の左の列に置く。
   帯そのものは flex（詳細）/ grid 2列（記事）なので、帯の子は増やさず本文の中を2列にする。
   1.1.0 は float で回り込ませていたが、本文の最終行がマッピーの下へ潜り込んだので grid にした（1.1.1） */
.tp-detail-cta-body,
.tp-art-cta-body{
  display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:20px; align-items:start;
}
.tp-detail-cta-body > *,
.tp-art-cta-body > *{ grid-column:2; }
.tp-detail-cta-body::before,
.tp-art-cta-body::before{
  content:""; grid-column:1; grid-row:1 / span 2; align-self:center;
  width:96px; height:96px;
  background:var(--tp-m-thumbsup) center / contain no-repeat;
}
/* 店舗詳細の推薦者コメント（デザイン04）：投稿者の丸いアバター → マッピー（point-right＝コメントの方を指す・66px／モバイル52px） */
.tp-recommend .tp-recommend-avatar{ display:none; }
.tp-recommend::before{
  content:""; flex:0 0 auto; width:66px; height:66px;
  background:var(--tp-m-point) center / contain no-repeat;
}
/* ♡の吹き出し（未ログインで「行きたい」を押したとき）。デザイン06の登録シートと同じく wave 58px を左に */
html body .dt-favorite-login-popover{
  display:grid !important; grid-template-columns:58px minmax(0,1fr); column-gap:12px; align-items:center;
}
html body .dt-favorite-login-popover > *{ grid-column:2; }
html body .dt-favorite-login-popover::before{
  content:""; grid-column:1; grid-row:1 / span 2; width:58px; height:58px;
  background:var(--tp-m-wave) center / contain no-repeat;
}
@media (max-width:760px){
  .tp-detail-cta-body,
  .tp-art-cta-body{ column-gap:14px; }
  .tp-detail-cta-body::before,
  .tp-art-cta-body::before{ width:66px; height:66px; }
  .tp-recommend::before{ width:52px; height:52px; }
}
/* dt-town-pop-repaint */
/* ============================================================
   V1〜V3 一覧（/listing/・タクソノミー）のモバイル
   ============================================================ */
/* V1 左右の余白 0px → 16px（規定16–18px）。
   地図パネルと同じ親（.dt-archive-layout）には付けない＝地図は全幅のまま。
   /listing/ は JS が body に dt-archive-narrow-mode を付ける（900px以下）。タクソノミーは付かないので幅でも受ける */
html body.dt-archive-narrow-mode .tp-arch-top .tp-filterbar-inner.tp-filterbar-inner,
html body.dt-archive-narrow-mode .dt-archive-results.dt-archive-results{
  padding-left:16px !important; padding-right:16px !important;
}
html body.dt-archive-narrow-mode .dt-container.dt-container.dt-mobile-results-map-tabs{
  padding-left:16px !important; padding-right:16px !important;
}
@media (max-width:760px){
  html body .tp-arch-top .tp-filterbar-inner.tp-filterbar-inner,
  html body .dt-archive-results.dt-archive-results{
    padding-left:16px !important; padding-right:16px !important;
  }
}

/* V2 一覧カード：モバイルだけ 枠1px・角丸5px になっていた → 標準カード（枠2px こげ茶・影4px4px）。
   角丸は PC の一覧と同じ16px。テーマ側は (0,4,1)+!important なので (0,4,2) で上書き */
@media (max-width:900px){
  html body .dt-archive-results .dt-listing-card.dt-listing-card.dt-listing-card{
    border:1.5px solid rgba(59,42,24,.72) !important;
    border-radius:16px !important;
    box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
  }
}

/* V3 「条件で探す」：青文字・角丸8px・細枠 → Town Pop のピル */
html body .tp-fb-pills .dt-mobile-filter-toggle.dt-mobile-filter-toggle{
  color:var(--dt-text) !important; background:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
}
/* V3 一覧／地図タブ：青 → こげ茶。選んでいる方は塗る（dt-town-pop-arch.php の意図。テーマの詳細度に負けていた） */
html body .dt-archive-tab.dt-archive-tab{
  color:var(--dt-text) !important; background:#fff !important;
  border:2px solid var(--dt-text) !important; box-shadow:none !important;
}
html body .dt-archive-tab.dt-archive-tab.is-active{
  color:#FFF8EC !important; background:var(--dt-text) !important;
  border-color:var(--dt-text) !important; box-shadow:none !important;
}

/* 検索窓（/listing/・タクソノミー）：角丸12px・細い生成り枠 → トップと同じピル（デザイン03） */
html body .dt-search .dt-search-bar input[type="search"]{
  min-height:48px; padding:0 22px !important;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:4px 4px 0 rgba(59,42,24,.22) !important;
}
html body .dt-search .dt-search-bar input[type="search"]:focus{
  outline:none; box-shadow:5px 5px 0 rgba(59,42,24,.3) !important;
}
/* ジャンルの「＋」（モバイルでジャンルが多いとき）：旧来の青 → こげ茶のピル */
html body .dt-search-tag-more{
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
}

/* ============================================================
   V4 ページ送り（次の24件／前の24件）：青の塗り＋青いぼかし影 → 副ボタン（白・枠2px・ずらし影）
   ============================================================ */
html body a.dt-pagination-page-action{
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
  font-weight:700;
}
html body a.dt-pagination-page-action:hover{
  background:var(--dt-bg-soft) !important; color:var(--dt-text) !important; text-decoration:none;
}
/* 1.0.3: ページ送りが崩れていた（2026-09-11 Ben 指摘）。「次の24件を見る」の枠が横に伸び（PC 588px）、
   隣のページ番号（1・2・…・25）が 164px に押し込まれて2段に折れていた。
   → ボタンは文字の幅に、ページ番号は折り返さない。入りきらないときはボタンの方が次の段へ回る */
html body .dt-listing-pagination{ flex-wrap:wrap; gap:14px 18px; }
html body .dt-listing-pagination .dt-pagination-pages{ flex:0 0 auto; }
html body .dt-listing-pagination .dt-pagination-pages ul.page-numbers{ flex-wrap:nowrap; }
html body .dt-listing-pagination .dt-pagination-actions{
  flex:0 0 auto; width:auto !important; display:flex !important; gap:10px;
}
html body .dt-listing-pagination a.dt-pagination-page-action{
  width:auto !important; min-width:0 !important; flex:0 0 auto;
  min-height:48px; padding:0 26px !important; gap:10px;
}
/* 1.1.0: ページ番号の外側の枠を消す（2026-09-12 Ben）。`.navigation.pagination .page-numbers` のピル指定が
   各番号だけでなく、それを包む ul.page-numbers にも当たっていた */
html body .navigation.pagination ul.page-numbers{
  border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important;
  padding:0 !important; margin:0; min-width:0 !important; height:auto !important;
  display:flex; gap:8px; list-style:none;
}

/* ============================================================
   1.1.0 カードの罫線を少し薄く（2026-09-12 Ben「カードの罫線が強すぎる」）
   枠 2px こげ茶 → 1.5px・こげ茶72%。ホバー・地図と連動中は元の濃さに戻して目立たせる
   ============================================================ */
html body .dt-listing-card.dt-listing-card.dt-listing-card.dt-listing-card,
html body .tp-cat.tp-cat,
html body .dt-category-index-card.dt-category-index-card,
html body .tp-pref-tile.tp-pref-tile,
html body .tp-art-card.tp-art-card{
  border-width:1.5px !important; border-color:rgba(59,42,24,.72) !important;
}
html body .dt-listing-card.dt-listing-card.dt-listing-card.dt-listing-card:hover,
html body .dt-listing-card.dt-listing-card.dt-listing-card.dt-listing-card.is-map-hover,
html body .dt-listing-card.dt-listing-card.dt-listing-card.dt-listing-card.is-map-active,
html body .tp-cat.tp-cat:hover,
html body .dt-category-index-card.dt-category-index-card:hover,
html body .tp-pref-tile.tp-pref-tile:hover,
html body .tp-art-card.tp-art-card:hover{
  border-color:var(--dt-text) !important;
}
/* カードの中の区切り線（写真と本文の間）も同じ濃さに */
html body .dt-listing-card .dt-card-image-wrap.dt-card-image-wrap{
  border-color:rgba(59,42,24,.72) !important;
}

/* ============================================================
   1.1.0 地図の吹き出し（Google Maps の InfoWindow）：Google 既定の白い角丸8px＋ぼかし影 → Town Pop のカード
   （2026-09-12 Ben「マップのウィンドウが未編集」）
   ============================================================ */
html body .gm-style .gm-style-iw-c{
  padding:0 !important; background:#fff;
  border:2px solid var(--dt-text); border-radius:16px !important;
  box-shadow:4px 4px 0 rgba(59,42,24,.22) !important;
}
html body .gm-style .gm-style-iw-d{ overflow:hidden !important; }
html body .gm-style .dt-map-popup{ padding:12px 14px !important; }
html body .gm-style .dt-map-popup,
html body .gm-style .dt-map-popup a{ color:var(--dt-text) !important; font-family:var(--dt-font-body); text-decoration:none; }
html body .gm-style .dt-map-popup strong{ display:block; margin:0 0 6px; font-size:15px; font-weight:900; line-height:1.4; }
html body .gm-style .dt-map-popup-thumb,
html body .gm-style .dt-map-popup-thumb img{ border-radius:10px !important; }
/* 1.2.4 吹き出しの中に出る細い枠を消す（2026-09-12 Ben「スマホのピンの吹き出しに枠が表示されてる」）。
   Google は開くと中の最初のリンクにフォーカスを当てるので、iOS Safari がその枠を描いていた。
   触る端末（hover:none）では出さない。マウス＋キーボードの端末では見える枠を残す。 */
html body .gm-style .dt-map-popup-link{ -webkit-tap-highlight-color:transparent; }
html body .gm-style .dt-map-popup-link:focus,
html body .gm-style .gm-style-iw-c:focus,
html body .gm-style .gm-style-iw-d:focus,
html body .gm-style .gm-style-iw-c:focus-visible,
html body .gm-style .gm-style-iw-d:focus-visible{ outline:none !important; }
html body .gm-style .dt-map-popup-link:focus-visible{
  outline:3px solid rgba(59,42,24,.45) !important; outline-offset:-3px; border-radius:10px;
}
@media (hover:none){
  html body .gm-style .dt-map-popup-link:focus,
  html body .gm-style .dt-map-popup-link:focus-visible{ outline:none !important; }
}

/* ============================================================
   V5・V6 一覧カードの中
   ============================================================ */
/* V5 カテゴリバッジ：薄い青地（モバイルは文字も青）→ 白地・こげ茶文字。カテゴリのバッジは生成り濃 */
html body .dt-listing-card .dt-card-meta a.dt-card-tax-badge{
  background:#fff !important; color:var(--dt-text) !important;
}
html body .dt-listing-card .dt-card-meta a.dt-card-tax-category{
  background:var(--dt-bg-soft) !important;
}
/* V6 画像面の下地（青・スレートのグラデーション）を消す。斜線は子の .dt-card-placeholder が描くので残る */
html body .dt-listing-card .dt-card-image{
  background-image:none; background-color:var(--dt-bg-soft);
}

/* ============================================================
   V7 お問い合わせ（/contact/）
   フォームのCSSは本文中の <style> にあり head より後に出るので、!important で押さえる
   ============================================================ */
.dt-contact-panel .dt-contact-form input:not([type="checkbox"]):not([type="radio"]),
.dt-contact-panel .dt-contact-form select,
.dt-contact-panel .dt-contact-form textarea{
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-border) !important; border-radius:12px !important;
  box-shadow:none !important;
}
.dt-contact-panel .dt-contact-form input:not([type="checkbox"]):not([type="radio"]):focus,
.dt-contact-panel .dt-contact-form select:focus,
.dt-contact-panel .dt-contact-form textarea:focus{
  border-color:var(--dt-text) !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important; outline:none;
}
.dt-contact-panel .dt-contact-form label span b{ color:var(--dt-red) !important; }
.dt-contact-panel .dt-contact-form .dt-contact-submit{
  min-height:48px; padding:0 32px !important;
  background:var(--dt-green) !important; color:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:3px 3px 0 var(--dt-text) !important;
  font-weight:700; cursor:pointer;
}
.dt-contact-panel .dt-contact-form .dt-contact-submit:hover{ background:#54941f !important; }

/* ============================================================
   V8 オーナー管理のログイン（/owner-dashboard/ 未ログイン）
   書体（Zen Kaku）は運営画面の指定なので据え置き。色・枠・押せる高さだけ直す（運営画面＝枠1px・角丸8–12px）
   ============================================================ */
.dt-owner-dashboard .dt-owner-help{ color:var(--dt-muted) !important; }
.dt-owner-front-login .dt-owner-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]){
  min-height:44px; padding:10px 12px;
  background:#fff; color:var(--dt-text);
  border:1px solid var(--dt-border) !important; border-radius:10px !important;
}
.dt-owner-front-login .dt-owner-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus{
  border-color:var(--dt-text) !important; outline:none;
}
.dt-owner-front-login .dt-owner-field b{ color:var(--dt-red); }
.dt-owner-front-login .dt-owner-button{ min-height:44px !important; }

/* ============================================================
   V9 店舗詳細：レビュー欄・写真を追加・営業中チップ
   ============================================================ */
html body .dt-review-summary-box{
  background:#fff; border:2px solid var(--dt-border); border-radius:18px;
}
/* レビュー0件は「空」の型（点線2px #DCC9AC） */
html body .dt-review-summary-box:has(.dt-review-summary-empty){
  background:transparent; border:2px dashed #DCC9AC;
}
html body .dt-review-summary-empty strong{ color:var(--dt-text); }
html body .dt-review-summary-empty p{ color:var(--dt-muted); }

html body details.dt-photo-accordion{
  background:#fff; border:2px solid var(--dt-border); border-radius:16px;
}
html body .dt-photo-upload__summary{ color:var(--dt-text) !important; }
html body a.dt-photo-upload__login-link{
  color:var(--dt-text) !important; font-weight:700;
  text-decoration:underline; text-underline-offset:3px;
}
/* 営業中チップ：Tailwind の emerald（#ECFDF5/#047857）→ 一覧カードと同じ値（dt-town-pop-cards.php） */
html body .dt-business-status-open{
  background:#EEF7E6; color:#3F7A17; border-color:#8FC46A;
}

/* ============================================================
   V10 404 の地：スレートのグラデーション → ページの生成りのまま
   ============================================================ */
html body section.dt-not-found{ background:none; }

/* ============================================================
   V11 トップ
   ============================================================ */
/* 地方タブ：白の半透明・青灰の枠・ぼかし影 → 白・枠2px こげ茶のピル（影なし） */
html body .dt-home-region-nav a{
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text); border-radius:999px; box-shadow:none;
}
html body .dt-home-region-nav a:hover{ background:var(--dt-bg-soft) !important; text-decoration:none; }
/* 話題（記事）カードの画像なし面：スレートのグラデーション → 生成り濃（写真がインラインで入っていればそちらが勝つ） */
html body a.dt-home-topic-image{ background-image:none; background-color:var(--dt-bg-soft); }
/* 日付（スレート灰）と「未分類」（青）→ 補助文字の茶 */
html body .dt-home-topic-meta,
html body .dt-home-topic-meta span{ color:var(--dt-muted); }
/* エリア欄の上下の区切り線：スレート → 区切りの生成り */
html body section.dt-home-area-section{ border-color:var(--dt-divider); }
/* カード4列の角丸 5px（home.css の !important）→ 標準カードの20px */
html body .dt-home-listings .dt-listing-card{ border-radius:20px !important; }

/* ============================================================
   V14〜V18 細かい取りこぼし
   ============================================================ */
/* V14 必須「*」：グルメのカテゴリ色 #EF4444 → 規定の赤 #E23A2E */
html body .dt-contributor-field b{ color:var(--dt-red); }
/* V15 推薦ページ入口の面：ぼかし影を消す（枠と地は dt-town-pop-auth.php の指定のまま） */
html body .dt-add-place-page .dt-contributor-auth-intro{ box-shadow:none !important; }
/* V16 一覧の表示切替：ぼかし影を消す */
html body .dt-view-toggle{ box-shadow:none; }
/* V17 記事詳細の関連記事サムネイルの地：スレート → 生成り濃 */
html body .dt-article-related-thumb{ background-color:var(--dt-bg-soft); }
/* V18 地図つき一覧のフッター下段の上罫線：スレート色 → こげ茶の面に合う区切り */
html body .dt-footer-bottom{ border-top-color:rgba(220,201,172,.18) !important; }

/* マイページ（08）のページ送り「次へ」：旧来の青 #285CAB → こげ茶 */
html body .dt-contributor-pagination a{
  color:var(--dt-text) !important; font-weight:700;
  text-decoration:underline; text-underline-offset:3px;
}

/* ============================================================
   ♡のログイン誘導（未ログインで「行きたい」を押したときの吹き出し）：旧来の青 → Town Pop
   リンク先の 404 は dt-login-path-fix.php で転送している
   ============================================================ */
html body .dt-favorite-login-popover{
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:16px !important;
  box-shadow:4px 4px 0 var(--dt-shadow-color) !important;
}
html body .dt-favorite-login-popover a{
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
  box-shadow:none !important; font-weight:700; text-decoration:none;
}
html body .dt-favorite-login-popover a:first-child{
  background:var(--dt-text) !important; color:#FFF8EC !important;
}
/* ============================================================
   1.2.0（2026-09-12 Ben の指摘まとめ）
   ============================================================ */
/* トップだけヘッダーが position:absolute（home.css）で、ヒーローがヘッダーの下に 32px 潜っていた → 他のページと同じ sticky に */
html body.home .dt-site-header.dt-site-header,
html body.front-page .dt-site-header.dt-site-header{ position:sticky !important; top:0 !important; }

/* トップのカテゴリ：スマホで1列 → 2列（layout.php の 560px と browse.php の 640px の両方を上書き） */
@media (max-width:640px){
  html body .dt-home-section .tp-cat-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px; }
  html body .dt-home-section .tp-cat{ padding:0 12px; gap:8px; min-height:52px; font-size:13px; }
}

/* トップ「エリアから探す」：掲載の多い5県のタイル（front-page.php）。3列で先頭（最多）だけ2列ぶん＝ちょうど2段。スマホは2列×3段 */
html body .tp-home-areas .tp-pref-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:640px){
  html body .tp-home-areas .tp-pref-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* タイル表示：写真の下の角が丸く見えていた。img に 13px の角丸（dt-town-pop.php）が残り、ホバーで拡大
   （components.css scale 1.035）したとき角ばった枠の中で丸角が見えていた → 写真は角丸なし（外側はカードの角丸で切る） */
html body .dt-listing-card .dt-card-image img,
html body .dt-listing-card .dt-card-placeholder{ border-radius:0 !important; }

/* リスト表示：営業時間の横にタグ（設備チップ）を並べて、カードの高さを抑える（2026-09-12 Ben「（営業時間）｜（タグ）（タグ）」）。
   1.2.0 で試した写真の正方形は、バランスが悪いので取りやめ（写真枠は本文の高さに合わせる元の挙動に戻した）。
   .dt-card-summary を display:contents にして、評価・営業時間・タグを本文の flex に並べ直す（DOM は触らない） */
html body .dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-body{
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  align-items:center; align-content:flex-start; column-gap:8px; row-gap:6px;
}
html body .dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-body > *{ flex:0 0 100%; min-width:0; }
html body .dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-summary{ display:contents !important; }
html body .dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-summary > *{ flex:0 0 100%; min-width:0; margin:0; }
html body .dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-summary > .dt-card-business-status{ flex:0 0 auto; }
html body .dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-body > .tp-card-features{
  flex:1 1 0; align-items:center; margin:0 !important;
}
/* 区切りは「｜」の文字ではなくタグの塊の左罫線（タグが2行に折れても区切りが崩れない。1.2.3） */
html body .dt-archive-results[data-dt-card-view="list"] .dt-listing-card .dt-card-summary:has(.dt-card-business-status) + .tp-card-features{
  border-left:1.5px solid var(--dt-border); padding-left:8px;
}

/* 表示切替（タイル／リスト）：外枠の padding:3px（search-archive.css）で白い輪が出ていた → 隙間なしのセグメント。
   1.4.0 で置き場所を結果見出し（「新着順」の隣）に戻したので、そちらを指す */
html body .dt-results-bar .dt-view-toggle.dt-view-toggle{ padding:0 !important; gap:0; height:auto; }
html body .dt-results-bar .dt-view-toggle.dt-view-toggle button{ min-height:38px; }

/* 地図の凡例「ピンの色」の開閉矢印：10px → 20px。向きは Ben 指定（開いている時▼・閉じている時▲） */
html body .tp-legend > summary::after{ content:"▲" !important; font-size:20px !important; opacity:.85 !important; line-height:1; }
html body .tp-legend[open] > summary::after{ content:"▼" !important; }

/* ============================================================
   「条件で探す」の開き方：以前はドロワーが検索窓とピル列の間に割り込み、ピル列と表示切替が約450px下へ
   押し出されていた（sticky の帯が画面の2/3に）。→ 帯の下に重ねて出す。下の一覧は動かない。最大で画面の70%、中はスクロール
   ============================================================ */
html body .tp-arch-top .tp-arch-top-inner{ position:relative; }
html body .tp-arch-top form.dt-search{ position:static !important; }
html body .tp-arch-top form.dt-search.is-mobile-filter-open .dt-search-fields.dt-search-fields{
  position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:60;
  display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; align-items:start;
  max-height:min(70vh,620px); overflow:auto; overscroll-behavior:contain;
  padding:20px 22px !important; margin:0 !important;
  background:#fff; border:2px solid var(--dt-text); border-radius:20px;
  box-shadow:6px 6px 0 rgba(59,42,24,.18);
}
html body .tp-arch-top form.dt-search.is-mobile-filter-open .dt-search-fields > .dt-radius-control,
html body .tp-arch-top form.dt-search.is-mobile-filter-open .dt-search-fields > .dt-category-details,
html body .tp-arch-top form.dt-search.is-mobile-filter-open .dt-search-fields > .dt-search-tag-panel,
html body .tp-arch-top form.dt-search.is-mobile-filter-open .dt-search-fields > .dt-search-feature-filter,
html body .tp-arch-top form.dt-search.is-mobile-filter-open .dt-search-fields > .dt-search-clear-wrap{ grid-column:1 / -1; }
@media (max-width:760px){
  html body .tp-arch-top form.dt-search.is-mobile-filter-open .dt-search-fields.dt-search-fields{
    grid-template-columns:minmax(0,1fr); padding:16px !important; top:calc(100% + 6px); max-height:72vh;
  }
}

/* 「条件で探す」の中身：旧来の青・スレート → Town Pop */
html body .dt-search .dt-radius-control input[type="range"]{ accent-color:var(--dt-green) !important; }
html body .dt-search .dt-radius-control strong{ color:var(--dt-text) !important; }
html body .dt-search details.dt-category-details.dt-category-details{
  background:#fff !important; border:2px solid var(--dt-border) !important; border-radius:14px !important;
}
html body .dt-search details.dt-category-details.dt-category-details > summary{ color:var(--dt-text) !important; font-weight:700 !important; }
html body .dt-search .dt-search-category-chip.dt-search-category-chip,
html body .dt-search .dt-search-tag-chip.dt-search-tag-chip{
  background:#fff !important; color:var(--dt-text) !important;
  border:1.5px solid var(--dt-border) !important; border-radius:999px !important; box-shadow:none !important;
}
html body .dt-search .dt-search-category-chip.dt-search-category-chip.is-active,
html body .dt-search .dt-search-tag-chip.dt-search-tag-chip.is-active{
  background:var(--dt-text) !important; color:#FFF8EC !important; border-color:var(--dt-text) !important;
}
html body .dt-search-feature-tabs .dt-search-feature-tab.dt-search-feature-tab{
  min-height:38px !important; padding:0 16px !important; font-size:13px !important;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
}
html body .dt-search-feature-tabs .dt-search-feature-tab.dt-search-feature-tab.is-active{
  background:var(--dt-text) !important; color:#FFF8EC !important;
}
html body .dt-search .dt-search-feature-group.dt-search-feature-group{
  border:2px solid var(--dt-border) !important; border-radius:16px !important;
}
html body .dt-search .dt-search-feature-list label{
  min-height:36px; background:#fff !important; color:var(--dt-text) !important;
  border:1.5px solid var(--dt-border) !important; border-radius:10px !important;
}
html body .dt-search .dt-search-feature-list label:has(input:checked){
  background:var(--dt-bg-soft) !important; border-color:var(--dt-text) !important;
}
html body .dt-search input[type="checkbox"],
html body .dt-search input[type="radio"]{ accent-color:var(--dt-green); }
html body .dt-search .dt-search-clear-all.dt-search-clear-all{
  min-height:44px; padding:0 22px !important; font-weight:700 !important;
  background:#fff !important; color:var(--dt-text) !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
}
/* 「設備・サービス」の見出し：旧来の青 → こげ茶 */
html body .dt-search .dt-search-feature-filter > legend{ color:var(--dt-text) !important; font-weight:700 !important; }
/* 「条件で探す」ボタン：開いている間は塗る（1.0.x の白指定が filterbar.php の「開いたら塗る」に勝っていた）。矢印も上向きに */
html body .tp-fb-pills .dt-mobile-filter-toggle.dt-mobile-filter-toggle[aria-expanded="true"]{
  background:var(--dt-text) !important; color:#FFF8EC !important;
}
html body .tp-fb-pills .dt-mobile-filter-toggle[aria-expanded="true"]::after{ content:"⌃" !important; }

/* ============================================================
   1.3.0 スマホの検索エリアを縮める（2026-09-12 Ben「検索エリアが場所取りすぎなんだが」）
   375×812 の実測: ヘッダー76 ＋ 検索エリア337（検索窓126・絞り込み149・余白62）＋ 一覧/地図タブ58 ＝ 471px。
   画面の6割が地図の上に乗っていて、地図は323pxしか残っていなかった。
   ①検索窓を1行に ②絞り込みを1行に。1.4.0 でピル4つを廃止したので、横スクロールの指定は不要になり削除した。
   ============================================================ */
@media (max-width:760px){
  /* ① キーワード・現在地・検索する を1行に。現在地は文字を消してアイコンだけの丸ボタンにする。
     テーマは `form.dt-search.dt-search-mode-standard .dt-search-bar > button[type="submit"]` に
     flex:1 1 0 !important を当てている（クラス4個）ので、こちらはクラス5個で受ける */
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar{
    flex-wrap:nowrap !important; gap:8px; align-items:center;
  }
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar > input[type="search"]{
    flex:1 1 auto !important; width:auto !important; min-width:0 !important;
    min-height:46px; padding:0 18px !important;
  }
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar > .dt-location-button{
    flex:0 0 46px !important; width:46px !important; min-width:46px !important;
    height:46px; min-height:46px; padding:0 !important;
    font-size:0 !important; line-height:0;
    background:#fff center/22px 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B2A18' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='1.8' fill='%233B2A18' stroke='none'/%3E%3Cpath d='M12 1.8v2.6M12 19.6v2.6M1.8 12h2.6M19.6 12h2.6'/%3E%3C/svg%3E") !important;
    border:2px solid var(--dt-text) !important; border-radius:999px !important; box-shadow:none !important;
  }
  /* 押した後の「現在地取得中...」は font-size:0 で見えないので、押せない見た目で伝える */
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar > .dt-location-button:disabled{ opacity:.5; }
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar > button[type="submit"]{
    flex:0 0 auto !important; width:auto !important; min-width:0 !important;
    height:46px; min-height:46px; padding:0 18px !important; white-space:nowrap;
  }
  /* ② 「条件で探す」を全幅の2段目から、条件チップと同じ列へ。押せる高さは44pxにそろえる（スタイルガイド） */
  html body .tp-filterbar .tp-fb-pills .dt-mobile-filter-toggle.dt-mobile-filter-toggle{
    width:auto !important; min-width:0 !important; padding:0 16px !important;
  }
  html body .tp-filterbar .tp-fb-pills .tp-fb-pill.tp-fb-pill{ height:44px; min-height:44px; }
}
/* 360px以下（iPhone SE など）は「キーワードで探す」が入りきらないので、左右の余白と文字を少し詰める */
@media (max-width:360px){
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar > input[type="search"]{ padding:0 14px !important; }
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar > input[type="search"]::placeholder{ font-size:13px; }
  html body .tp-arch-top form.dt-search .dt-search-bar.dt-search-bar > button[type="submit"]{ padding:0 14px !important; }
}

/* ============================================================
   1.4.0（2026-09-12 Ben の指摘 2・5・6）
   ============================================================ */
/* 2 検索窓の下の空きを詰め、「条件で探す」の行の上下の間隔をそろえる。
   これまでは 上9px ／ 下30px（filterbar の margin-bottom 18＋帯の padding 12）で、下だけ3倍あいていた */
html body .tp-arch-top .tp-filterbar{ margin-top:0 !important; margin-bottom:0 !important; }
html body .tp-arch-top .tp-filterbar-inner{ padding:10px 0 !important; }

/* 5 「設備・サービス」：枠のすぐ内側に見出しとチェックが貼り付いていた（padding:0）→ 内側に余白を入れる */
html body .dt-search .dt-search-feature-group.dt-search-feature-group{ padding:14px 16px 16px !important; }
html body .dt-search .dt-search-feature-group > h4{
  margin:0 0 10px !important; font-size:14px !important; font-weight:700 !important; color:var(--dt-text) !important;
}
html body .dt-search .dt-search-feature-subheading{ color:var(--dt-text) !important; }
html body .dt-search fieldset.dt-search-feature-filter{
  border-top:1.5px solid var(--dt-divider) !important; padding-top:14px !important; margin-top:8px !important;
}

/* 6 選択中の見た目に残っていた旧デザイン（青） */
/* 「カテゴリーを選択」の右のバッジ（listing-detail.css の var(--dt-blue)） */
html body .dt-search .dt-category-details > summary small{
  background:var(--dt-text) !important; color:#FFF8EC !important;
  border-radius:999px; padding:2px 10px; font-weight:700;
}
/* ジャンルの「＋」：テーマの `.dt-search button.dt-search-tag-more[data-dt-tag-more]`(0,3,1)+!important に負けていた */
html body .dt-search button.dt-search-tag-more.dt-search-tag-more[data-dt-tag-more]{
  color:var(--dt-text) !important; background:#fff !important;
  border:2px solid var(--dt-text) !important; border-radius:999px !important;
}
/* 選んだジャンル・カテゴリのチップ：テーマは青い outline で表していた → Town Pop の塗り */
html body .dt-search .dt-search-tag-chip.dt-search-tag-chip:has(input:checked),
html body .dt-search .dt-search-category-chip.dt-search-category-chip:has(input:checked){
  outline:0 !important;
  background:var(--dt-text) !important; border-color:var(--dt-text) !important;
  color:#FFF8EC !important;
}
html body .dt-search .dt-search-tag-chip.dt-search-tag-chip:has(input:checked) span,
html body .dt-search .dt-search-category-chip.dt-search-category-chip:has(input:checked) span{
  color:#FFF8EC !important;
}
html body .dt-search .dt-search-feature-list label:has(input:checked){ outline:0 !important; }
/* dt-nav-area-submenu-off */
/* ヘッダー「エリアから探す」の地域サブメニューを畳む（2026-09-10）。
   このファイルを消せば元に戻る。 */
.dt-primary-nav .dt-menu-area .dt-sub-menu,
.dt-primary-nav .dt-menu-area .dt-submenu-toggle{
  display:none !important;
}
/* 開閉ボタンが消えたぶん、親行をただのリンク1本として扱う */
.dt-primary-nav .dt-menu-area .dt-menu-parent-row{
  display:block; gap:0;
}
