/**
 * STOPBY：新しいデザイン（デザインの決まりごと v0.1）
 *
 * - 部品は t- で始まるクラス。REHUB の style.css の上に重ねる
 * - キーカラー・星の色・フォントはテーマオプションの値（--stopby-*）から取る
 * - スマホ基準。768px・1024px で並べ方を変える
 */

/* ========== 値 ========== */
.t-site {
	--key: rgb(var(--stopby-accent-color, 47, 111, 98));
	--key-ink: color-mix(in srgb, var(--key) 72%, #000);
	--key-soft: color-mix(in srgb, var(--key) 11%, #fff);
	/* キーカラーの上の文字（キーカラーが明るいときは黒）と、白い地にキーカラーで書く文字（明るいときは暗くする）。functions/head.php */
	--on-key: var(--stopby-on-accent-color, #fff);
	--key-text: var(--stopby-accent-text-color, var(--key));
	--ink: #1c1c1c;
	--sub: #6b6b6b;
	--line: #e5e1db;
	--paper: #fff;
	--sand: rgb(var(--stopby-bg-color, 246, 242, 236));
	/* マウスを重ねたときのうすい背景（ふだんは --sand。--sand が白のデザインは別の色にする） */
	--hover-bg: var(--sand);
	--star: var(--stopby-review-star-color, #b97a06);
	--star-empty: #ddd6cc;
	--ok: #287a4c;
	--ok-soft: #eaf4ee;
	--warn: #8a6200;
	--warn-soft: #fff4d6;
	--err: #c0392b;
	--err-soft: #fbeceb;
	--r-s: 8px;
	--r-m: 12px;
	--r-l: 16px;
	--en: Arial, "Helvetica Neue", Helvetica, sans-serif;
	--gutter: 16px;
	--sec: 60px;
	color: var(--ink);
	background: var(--paper);
}
/* 余白の基準は直近のTCDテーマ（セクション上下 PC 100〜120px・スマホ 40〜70px、左右 スマホ20px） */
@media (max-width: 767px) { .t-site { --gutter: 20px; } }
@media (min-width: 768px) { .t-site { --gutter: 24px; --sec: 100px; } }
@media (min-width: 1024px) { .t-site { --gutter: 20px; --sec: 120px; } }
/* 画面の上に止まるものの高さ：管理バー（--t-bar。600px以下はスクロールで流れるので 0）＋固定したヘッダー（--t-hdr）。止まる要素は top: var(--t-top) */
.t-site { --t-bar: 0px; --t-hdr: 0px; --t-top: calc(var(--t-bar) + var(--t-hdr)); }
@media (min-width: 601px) { .t-site.admin-bar { --t-bar: 46px; } }
@media (min-width: 783px) { .t-site.admin-bar { --t-bar: 32px; } }
@media (max-width: 1023px) { body.t-site:has(.t-header.is-fix-sp:not(.is-hidden)) { --t-hdr: 60px; } }
@media (min-width: 1024px) { body.t-site:has(.t-header.is-fix-pc:not(.is-hidden)) { --t-hdr: 80px; } }

.t-site .t-wrap, .t-wrap { width: 100%; max-width: calc(1100px + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); box-sizing: border-box; }
.t-site .t-narrow { max-width: calc(720px + var(--gutter) * 2); }
.t-full #container > .l-container__inner { display: block; padding: 0; max-width: none; width: auto; }
.t-full .l-main { width: auto; max-width: none; padding: 0; margin: 0; float: none; }
.t-site :focus-visible { outline: 2px solid var(--key); outline-offset: 2px; }
.t-site [hidden] { display: none !important; }
/* 読み上げだけに残す（デザインCの店舗の一覧では、パンくずのホームと一覧も） */
.t-sr, .t-skin-c .t-list .t-crumb :is(.is-home, .is-archive) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ========== 部品 ========== */
.t-ic { width: 20px; height: 20px; flex: none; vertical-align: middle; }
.t-ic.s { width: 16px; height: 16px; }
.t-ic.l { width: 28px; height: 28px; }

.t-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid var(--key); background: var(--paper); color: var(--key-text); font-size: 14px; font-weight: 400; line-height: 1; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background .2s, color .2s, filter .2s; box-sizing: border-box; }
.t-btn:hover { background: var(--key-soft); }
.t-btn.is-pri { background: var(--key); color: var(--on-key); }
.t-btn.is-pri:hover { background: var(--key); opacity: .8; }
.t-btn.is-quiet { border-color: var(--line); color: #555; font-weight: 400; }
.t-btn.is-l { height: 56px; padding: 0 28px; font-size: 15px; }
.t-btn.is-xl { height: 70px; min-width: 300px; padding: 0 36px; font-size: 15px; }
.t-btn.is-s { height: 36px; padding: 0 14px; font-size: 13px; }
.t-btn.is-block { width: 100%; }
.t-btn[aria-pressed="true"] { background: var(--key-soft); }
.t-iconbtn { width: 44px; height: 44px; border: 0; border-radius: 50%; background: none; color: inherit; display: inline-grid; place-items: center; cursor: pointer; padding: 0; }
.t-iconbtn:hover { background: var(--hover-bg); }

.t-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; line-height: 1.6; border-radius: var(--r-s); padding: 2px 10px; background: var(--key-soft); color: var(--key-ink); font-weight: 600; }
.t-chip.is-no { background: #f3f3f3; color: #8a8a8a; text-decoration: line-through; font-weight: 400; }
.t-chip .t-ic { width: 14px; height: 14px; }
.t-cat { display: inline-block; font-size: 11px; line-height: 1.8; border: 1px solid var(--line); border-radius: 999px; padding: 0 10px; color: var(--ink); }
a.t-cat:hover { border-color: var(--key); color: var(--key-text); }
.t-plan { display: inline-block; font-size: 10px; font-weight: 600; line-height: 1.8; border-radius: 999px; padding: 0 9px; background: var(--key); color: var(--on-key); }

.t-stars { display: inline-flex; gap: 1px; vertical-align: -2px; }
.t-stars i { width: 14px; height: 14px; background: linear-gradient(90deg, var(--star) calc(var(--f) * 100%), var(--star-empty) 0); clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.t-stars.is-l i { width: 22px; height: 22px; }
.t-rating { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.t-rating b { font-variant-numeric: tabular-nums; }
.t-rating small { color: var(--sub); font-size: 12px; }
.t-rating.is-none { color: var(--sub); font-size: 12px; }

.t-photo { display: block; position: relative; overflow: hidden; background: var(--sand); }
.t-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.t-photo.is-none { display: grid; place-items: center; color: rgba(255, 255, 255, .9); background: var(--tone, linear-gradient(135deg, #cfdcd2, #7f9c8c)); }
.t-photo.is-none .t-ic { width: 36%; height: 36%; max-width: 56px; max-height: 56px; opacity: .85; }
.t-tone-a { --tone: linear-gradient(135deg, #cfdcd2, #7f9c8c); }
.t-tone-b { --tone: linear-gradient(135deg, #ead9c4, #c19a6b); }
.t-tone-c { --tone: linear-gradient(135deg, #d9d4e6, #8f86a8); }
.t-tone-d { --tone: linear-gradient(140deg, #f0e2d6, #c9a28a); }
.t-tone-e { --tone: linear-gradient(135deg, #d6e2ea, #7d97a8); }

.t-en { font: 600 clamp(30px, 3.4vw, 40px)/1.2 var(--en); letter-spacing: 0; margin: 0; }
.t-en i { font-style: normal; color: var(--key-text); }
.t-ja { font-size: 13px; color: var(--sub); margin: 4px 0 0; }
.t-sec { position: relative; padding-block: var(--pad, var(--sec)); color: var(--t-text, inherit); }
.t-sec.is-sand { background: var(--sand); }
.t-sec.is-tight { padding-block: calc(var(--sec) * .6); }

/* トップページのコンテンツ：余白・背景・色はテーマオプション（STOPBY設定 > トップページ） */
.t-sec.is-sp-l { --pad: 80px; }
.t-sec.is-sp-m { --pad: 60px; }
.t-sec.is-sp-s { --pad: 40px; }
.t-sec.is-sp-0 { --pad: 0px; }
@media (min-width: 1024px) {
	.t-sec.is-sp-l { --pad: 150px; }
	.t-sec.is-sp-m { --pad: 120px; }
	.t-sec.is-sp-s { --pad: 80px; }
}
.t-sec.is-color { background: var(--t-sec-bg); }
.t-sec.is-bgimg { color: var(--t-text, #fff); --t-head-def: #fff; --t-sub-def: rgba(255, 255, 255, .85); overflow: hidden; }
.t-sec__bg { position: absolute; inset: 0; z-index: 0; }
.t-sec__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.t-sec__bg::after { content: ""; position: absolute; inset: 0; background: var(--t-overlay, rgba(0, 0, 0, .4)); }
.t-sec.is-bgimg > :not(.t-sec__bg) { position: relative; z-index: 1; }

/* 見出し（TCD：欧文の飾り見出し＋和文16px、見出しから中身まで PC 70px・スマホ 40px） */
.t-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 40px; margin-bottom: 40px; flex-wrap: wrap; }
@media (min-width: 1024px) { .t-head { margin-bottom: 70px; } }
.t-sechead { margin: 0; font-weight: 400; }
.t-sechead .t-en { display: block; }
.t-sechead .t-ja { display: block; font-size: 13px; color: var(--sub); margin-top: 6px; font-weight: 600; }
.t-sechead .t-ja.is-main { font-size: clamp(22px, 2.6vw, 28px); color: var(--ink); margin: 0; }
.t-sec .t-head .t-en { font-size: var(--t-en-size-sp, 30px); color: var(--t-head, var(--t-head-def, var(--ink))); }
.t-sec .t-en i { color: var(--t-accent, var(--key-text)); }
.t-sec .t-head .t-ja { font-size: var(--t-ja-size-sp, 14px); color: var(--t-head, var(--t-sub-def, var(--sub))); margin-top: 10px; }
.t-sec .t-head .t-ja.is-main { font-size: calc(var(--t-ja-size-sp, 14px) * 1.6); color: var(--t-head, var(--t-head-def, var(--ink))); margin: 0; }
.t-head p { margin: 0; color: var(--t-text, var(--t-sub-def, var(--ink))); font-size: 14px; line-height: 2.2; max-width: 40em; }
@media (min-width: 1024px) {
	.t-sec .t-head .t-en { font-size: var(--t-en-size, 48px); }
	.t-sec .t-head .t-ja { font-size: var(--t-ja-size, 16px); }
	.t-sec .t-head .t-ja.is-main { font-size: calc(var(--t-ja-size, 16px) * 2.125); }
	.t-head p { font-size: 16px; line-height: 2.4; }
}
.t-sec.is-center .t-head { flex-direction: column; align-items: center; text-align: center; }

/* 一覧を見るボタン（TCD：中身の下・中央、PC 300×70／スマホ 240×60） */
.t-head__more, .t-sbox__lbl, .t-genres__en { display: none; }
.t-sec__more { display: flex; justify-content: center; margin-top: 40px; }
@media (min-width: 1024px) { .t-sec__more { margin-top: 60px; } }
.t-sec__more .t-btn { height: 60px; min-width: 240px; padding: 0 32px; font-size: 14px; }
@media (min-width: 1024px) { .t-sec__more .t-btn { height: 70px; min-width: 300px; font-size: 16px; } }
.t-sec .t-sec__btn { background: var(--t-btn-bg, var(--paper)); color: var(--t-btn-fg, var(--key-text)); border-color: var(--t-btn-bg, var(--key)); }
.t-sec .t-sec__btn:hover { background: var(--t-btn-bg, var(--key)); color: var(--t-btn-fg, var(--on-key)); opacity: .8; }
.t-sec .t-sec__btn.is-pri { background: var(--t-btn-bg, var(--key)); color: var(--t-btn-fg, var(--on-key)); }
.t-more { display: flex; justify-content: center; margin-top: 40px; }

.t-empty { text-align: center; padding: 48px 24px; border-radius: var(--r-l); background: var(--sand); }
.t-empty .t-ic { width: 40px; height: 40px; color: var(--key-text); }
.t-empty h3 { margin: 10px 0 10px; font-size: 17px; line-height: 1.6; }
.t-empty p { margin: 0 auto 18px; color: var(--sub); font-size: 14px; line-height: 1.9; max-width: 30em; }

.t-toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 1000; background: #1c1c1c; color: #fff; border-radius: 999px; padding: 10px 18px; font-size: 13px; line-height: 1.5; box-shadow: 0 8px 24px rgba(0, 0, 0, .2); }
.t-has-bar .t-toast { bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }

/* ========== ヘッダー ========== */
.t-header { position: relative; top: 0; z-index: 100; background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); transition: transform .25s; }
/* 管理バーの分だけページを下げる（WordPress の標準の指定は functions/wp/init.php で外している） */
body.admin-bar.t-site { padding-top: 46px; }
@media (min-width: 783px) { body.admin-bar.t-site { padding-top: 32px; } }
.t-header.is-hidden { transform: translateY(-100%); }
.t-header.is-fix-sp { position: sticky; top: var(--t-bar); }
@media (min-width: 1024px) { .t-header { position: relative; } .t-header.is-fix-pc { position: sticky; top: var(--t-bar); } }
.t-header__in { display: flex; align-items: center; gap: 8px; height: 60px; }
@media (min-width: 1024px) { .t-header__in { height: 80px; gap: 40px; } }
.t-logo { display: flex; align-items: center; gap: 8px; min-width: 0; margin: 0; font: inherit; color: var(--ink); text-decoration: none; }
.t-logo a { display: flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.t-logo a:hover { opacity: .7; }
.t-logo__text { font-family: var(--stopby-font-type-logo, var(--en)); font-weight: var(--stopby-font-logo-weight, 600); font-size: var(--t-logo-size-sp, 18px); letter-spacing: .16em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 1024px) { .t-logo__text { font-size: var(--t-logo-size, 20px); letter-spacing: .2em; } }
.t-logo img { display: block; max-height: 30px; width: auto; }
@media (min-width: 1024px) { .t-logo img { max-height: 40px; } }
/* グローバルメニュー（TCD：16px・太さ400、項目の間 40px。入りきらない幅ではドロワー） */
.t-gnav { display: none; }
@media (min-width: 1200px) {
	.t-gnav { display: block; align-self: stretch; }
	.t-gnav > ul { display: flex; gap: 40px; height: 100%; list-style: none; margin: 0; padding: 0; font-size: 16px; }
	.t-gnav li { position: relative; margin: 0; }
	.t-gnav > ul > li { display: flex; align-items: center; }
	.t-gnav a { color: var(--ink); text-decoration: none; padding: 8px 0; display: block; }
	.t-gnav a:hover { color: var(--key-text); }
	/* 普通のドロップダウン（TCD：グレーの箱、行の高さ 50px、ホバーでキーカラー） */
	.t-gnav .sub-menu { display: none; position: absolute; top: 100%; left: -24px; z-index: 95; width: 240px; list-style: none; margin: 0; padding: 0; background: var(--t-mega-bg, var(--t-mega-gray, #f0f0f0)); flex-direction: column; }
	.t-gnav li.is-open > .sub-menu { display: flex; }
	.t-gnav .sub-menu li { display: block; }
	.t-gnav .sub-menu a { display: flex; align-items: center; min-height: 50px; padding: 10px 24px; font-size: 14px; line-height: 1.5; color: var(--t-mega-fg, var(--ink)); }
	.t-gnav .sub-menu a:hover { background: var(--t-mega-hlbg, var(--key)); color: var(--on-key); }
	.t-gnav .sub-menu .sub-menu { top: 0; left: 100%; }
}
.t-header__r { margin-left: auto; display: flex; align-items: center; gap: 6px; }
@media (min-width: 1024px) { .t-header__r { gap: 8px; } .t-header__r .t-iconbtn > .t-ic { width: 22px; height: 22px; } }
@media (min-width: 1200px) { .t-header__r .t-iconbtn.is-sp { display: none; } }
/* アカウント：ログイン前は人の形、ログイン後は本人の写真（無ければ名前の1文字）と緑の点。押すと小さなメニュー */
.t-acct { position: relative; }
.t-acct__av { position: relative; display: block; width: 34px; height: 34px; }
.t-acct__av img, .t-acct__me img { display: block; width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.t-face { display: grid; place-items: center; flex: none; background: #c9b49a; color: #fff; font-size: 14px; font-weight: 700; line-height: 1; }
.t-acct .t-face { width: 34px; height: 34px; border-radius: 50%; }
.t-acct__dot { position: absolute; right: -1px; bottom: -1px; box-sizing: border-box; width: 10px; height: 10px; border: 2px solid var(--paper, #fff); border-radius: 50%; background: #2fb36b; }
.t-acct__menu { position: absolute; right: 0; top: calc(100% + 12px); z-index: 120; width: 240px; padding: 12px; background: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, .14); text-align: left; }
.t-acct__menu[hidden] { display: none; }
.t-acct__menu a { display: flex; align-items: center; gap: 10px; padding: 10px 8px; color: var(--ink); font-size: 14px; line-height: 1.4; text-decoration: none; }
.t-acct__menu a:hover { background: var(--hover-bg); }
.t-acct__menu a .t-ic { flex: none; width: 18px; height: 18px; }
.t-acct__menu .is-sub { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--sub); font-size: 12px; }
.t-acct__me { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; padding: 4px 6px 12px; border-bottom: 1px solid var(--line); line-height: 1.4; }
.t-acct__me b { display: block; font-size: 14px; }
.t-acct__me small { font-size: 11px; color: #888; }
/* 口コミを書く（PCはアイコンのボタン） */
.t-hwrite { display: none; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--key); color: var(--on-key); }
.t-hwrite:hover { background: var(--key-ink); }
.t-hwrite .t-ic { width: 20px; height: 20px; }
@media (min-width: 1024px) { .t-hwrite { display: inline-grid; } }
.t-hsearch { display: none; border-top: 1px solid var(--line); padding: 10px 0; }
.t-hsearch.is-open { display: block; }
.t-hsearch form { display: flex; gap: 8px; }
.t-hsearch input { flex: 1; min-width: 0; height: 44px; border: 0; border-radius: 999px; background: var(--sand); padding: 0 18px; font-size: 16px; }

/* REHUBのヘッダーメッセージ・ドロワーはそのまま使い、上の位置だけ合わせる */
.t-site .p-header-message { position: relative; z-index: 101; }

/* ========== パンくず ========== */
.t-crumb { font-size: 12px; color: var(--sub); padding: 14px 0; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.t-crumb ol { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.t-crumb li { margin: 0; display: flex; gap: 8px; }
.t-crumb li + li::before { content: "›"; color: #bbb; }
.t-crumb a { color: inherit; text-decoration: none; }
.t-crumb a:hover { color: var(--key-text); }

/* ========== 店舗カード ========== */
.t-scard { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.t-scard .t-photo { height: 104px; border-radius: var(--r-m); }
.t-scard__b { display: block; min-width: 0; }
.t-scard h3 { margin: 2px 0 0; font-size: 16px; line-height: 1.45; font-weight: 600; }
.t-scard__meta { font-size: 12px; color: var(--sub); line-height: 1.6; }
.t-scard__tags { display: flex; gap: 4px; flex-wrap: wrap; }
.t-scard__chips { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 6px; }
.t-scard__chips .t-chip { font-size: 11px; padding: 0 7px; }
.t-scard__snip { font-size: 12px; color: #444; line-height: 1.7; margin: 6px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.t-scard:hover h3 { color: var(--key-text); }
@media (min-width: 768px) {
	.t-scards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
	.t-scards .t-scard { display: block; border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; padding: 0; background: #fff; }
	.t-scards .t-scard .t-photo { height: 190px; border-radius: 0; }
	.t-scards .t-scard__b { padding: 14px 16px 18px; }
}
@media (min-width: 1024px) { .t-scards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; } }

/* ========== 口コミカード ========== */
.t-who { display: flex; gap: 10px; align-items: center; min-width: 0; }
.t-av { width: 36px; height: 36px; border-radius: 50%; flex: none; object-fit: cover; background: var(--sand); }
.t-who b { display: block; font-size: 14px; line-height: 1.4; }
.t-who small { display: block; color: var(--sub); font-size: 11px; line-height: 1.4; }
.t-rcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; color: var(--ink); text-decoration: none; scroll-snap-align: start; }
.t-rcard:hover h3 { color: var(--key-text); }
.t-rcard__b { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
.t-rcard h3 { margin: 10px 0 2px; font-size: 15px; line-height: 1.6; }
.t-rcard p { margin: 4px 0 10px; font-size: 13px; line-height: 1.8; color: #444; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.t-rcard__store { display: flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 10px; border-top: 1px solid #f1eee9; font-size: 12px; color: var(--key-ink); font-weight: 600; }
.t-rcard:hover .t-rcard__store { text-decoration: underline; text-underline-offset: 3px; }
.t-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 300px); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--gutter) 16px; scrollbar-width: thin; }
@media (min-width: 1140px) { .t-rail { padding-inline: calc((100vw - 1100px) / 2); gap: 30px; } }

/* ========== トップページ ========== */
.t-hero { position: relative; margin: 0 8px; border-radius: 0 0 28px 28px; overflow: hidden; min-height: 560px; display: flex; align-items: flex-end; color: var(--t-hero-fg, #fff); }
@media (min-width: 1024px) { .t-hero { margin: 0 16px; min-height: 520px; } }
.t-hero__bg { position: absolute; inset: 0; background: linear-gradient(160deg, #9fb8ab 0%, #5d7f72 55%, #3d5d53 100%); }
.t-hero__bg img, .t-hero__bg video, .t-hero__bg iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.t-hero__bg .is-fade { opacity: 0; transition: opacity 1.4s; }
.t-hero__bg .is-fade.is-on { opacity: 1; }
.t-hero__bg::after { content: ""; position: absolute; inset: 0; background: var(--t-overlay, rgba(0, 0, 0, .3)); }
.t-hero__in { position: relative; z-index: 1; width: 100%; padding-bottom: 28px; }
@media (min-width: 1024px) { .t-hero__in { padding-bottom: 48px; } }
.t-hero__eyebrow { font-size: 14px; opacity: .92; margin: 0; }
.t-hero h1, .t-hero .t-hero__title { margin: 6px 0 6px; font: 600 var(--t-hero-size-sp, 32px)/1.35 var(--stopby-font-type1, var(--en)); letter-spacing: 0; white-space: pre-line; }
@media (min-width: 1024px) { .t-hero h1, .t-hero .t-hero__title { font-size: var(--t-hero-size, 52px); } }
.t-hero__count { display: flex; gap: 20px; flex-wrap: wrap; font-size: 14px; margin: 0 0 22px; }
.t-hero__count b { font: 600 24px/1 var(--en); margin-right: 4px; }
.t-sbox { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; background: #fff; border-radius: var(--r-l); padding: 8px; box-shadow: 0 12px 40px rgba(0, 0, 0, .18); color: var(--ink); }
.t-sbox input, .t-sbox select { height: 52px; min-width: 0; border: 0; border-radius: 10px; background: var(--sand); padding: 0 16px; font-size: 16px; color: var(--ink); appearance: none; -webkit-appearance: none; }
.t-sbox select { background-image: linear-gradient(45deg, transparent 50%, #888 50%), linear-gradient(135deg, #888 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 34px; }
.t-sbox input { grid-column: 1 / -1; }
.t-sbox button { grid-column: 1 / -1; height: 52px; border: 0; border-radius: 10px; background: var(--t-sbox-btn, var(--key)); color: var(--t-sbox-btn-fg, var(--on-key)); font-weight: 600; font-size: 15px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.t-sbox button:hover { opacity: .8; }
/* エリア・ジャンルを選ぶパネル（js/stopby.js）。select の上に透明のボタンを重ね、PC はフォームの中のパネル、スマホは下から出るシート */
.t-sbox__pick { position: absolute; z-index: 2; cursor: pointer; }
.t-sbox__pick:focus-visible { outline: 2px solid var(--key); outline-offset: 2px; }
.t-sbox__pick:focus:not(:focus-visible) { outline: 0; }
/* キーワード欄の枠が隣の欄の下に隠れないように */
.t-sbox input:focus-visible { position: relative; z-index: 1; }
.t-sbp { position: absolute; z-index: 30; box-sizing: border-box; color: var(--ink); text-align: left; --t-sbp-w: 300px; }
.t-sbp[hidden] { display: none; }
.t-sbp.is-area { --t-sbp-w: 560px; padding: 18px 20px 8px; }
.t-sbp.is-genre { padding: 6px; }
:where(.t-sbp) button { font: inherit; color: inherit; cursor: pointer; }
.t-sbp__hd { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.t-sbp.is-area .t-sbp__hd { padding-bottom: 12px; }
.t-sbp.is-area .t-sbp__hd b { font-size: 15px; }
.t-sbp.is-genre:not(.t-sbsheet) .t-sbp__hd { min-height: 40px; margin-bottom: 4px; padding: 0 10px; font-size: 12px; color: var(--mute, #888); }
.t-sbp.is-genre:not(.t-sbsheet) .t-sbp__hd b { font-weight: 400; }
.t-sbp__all { padding: 0; border: 0; background: none; font-size: 13px; color: var(--key-text); text-decoration: underline; text-underline-offset: 3px; }
.t-sbp.is-genre .t-sbp__all { font-size: 12px; }
.t-sbp__row { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 0; }
.t-sbp__rg { padding-top: 8px; font-size: 13px; line-height: 1.4; }
.t-sbp__rg.is-btn { justify-self: start; padding-right: 0; padding-bottom: 0; padding-left: 0; border: 0; background: none; text-align: left; }
.t-sbp__rg.is-btn:hover, .t-sbp__rg.is-btn[aria-pressed="true"] { color: var(--key-text); text-decoration: underline; text-underline-offset: 4px; }
.t-sbp__ps { display: flex; flex-wrap: wrap; gap: 6px; }
.t-sbp__p { display: inline-flex; align-items: center; height: 34px; padding: 0 12px; font-size: 13px; line-height: 1.4; }
.t-sbp__g { display: grid; grid-template-columns: 28px minmax(0, 1fr) 16px; gap: 12px; align-items: center; width: 100%; min-height: 46px; padding: 0 10px; border: 0; background: none; font-size: 14px; text-align: left; }
.t-sbp__g.is-noicon { grid-template-columns: minmax(0, 1fr) 16px; }
.t-sbp__gi { display: grid; place-items: center; width: 28px; height: 28px; color: var(--key-text); }
.t-sbp__gi .t-ic { width: 20px; height: 20px; }
.t-sbp__gi.is-none { font-size: 12px; font-weight: 700; }
.t-sbp__ck { visibility: hidden; color: var(--key-text); font-weight: 700; }
.t-sbp__g[aria-pressed="true"] .t-sbp__ck { visibility: visible; }
.t-sbsheet { max-height: 82vh; }
.t-sbsheet[open] { display: flex; }
.t-sbsheet__in { display: flex; flex-direction: column; width: 100%; max-height: inherit; box-sizing: border-box; padding: 10px 20px calc(20px + env(safe-area-inset-bottom, 0px)); }
.t-sbsheet .t-sheet__grab { margin: 0 auto 14px; }
.t-sbsheet .t-sbp__hd { padding: 4px 0 14px; }
.t-sbsheet.is-genre .t-sbp__hd b { font-size: 15px; }
.t-sbsheet__x { margin: -10px -12px -10px 0; }
.t-sbsheet__bd { overflow: auto; }
.t-sbsheet .t-sbp__row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.t-sbsheet .t-sbp__rg { padding-top: 0; }
.t-sbsheet__ft { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.t-sbsheet__ft button { height: 48px; padding: 0 16px; font-size: 14px; white-space: nowrap; }
.t-sbsheet__go { border: 0; background: var(--key); color: var(--on-key); }
.t-sbsheet__go:disabled { opacity: .4; cursor: default; }
.t-sbox.is-two select:last-of-type { grid-column: 1 / -1; }
.t-site:not(.t-skin-c) .t-sbox.is-one :is(input, button) { grid-column: 1 / -1; }
@media (min-width: 900px) {
	.t-sbox { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
	.t-sbox input, .t-sbox button, .t-sbox.is-two select:last-of-type { grid-column: auto; }
	.t-sbox button { padding: 0 28px; }
	.t-sbox.is-two { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto; }
	.t-site:not(.t-skin-c) .t-sbox.is-one { grid-template-columns: minmax(0, 1fr) auto; }
	.t-site:not(.t-skin-c) .t-sbox.is-one :is(input, button) { grid-column: auto; }
}

/* ---------- トップページ：流れるテキスト（マウスを乗せる・キーボードで文字に移る・指で押さえると止まる） ---------- */
/* 背景なしは他のセクションと同じ余白。背景を付けたときは帯なので、文字の上下の余白を小さくする */
.t-fp-marquee.t-sec:is(.is-sand, .is-color, .is-bgimg).is-sp-l { --pad: 40px; }
.t-fp-marquee.t-sec:is(.is-sand, .is-color, .is-bgimg).is-sp-m { --pad: 28px; }
.t-fp-marquee.t-sec:is(.is-sand, .is-color, .is-bgimg).is-sp-s { --pad: 16px; }
@media (min-width: 1024px) {
	.t-fp-marquee.t-sec:is(.is-sand, .is-color, .is-bgimg).is-sp-l { --pad: 60px; }
	.t-fp-marquee.t-sec:is(.is-sand, .is-color, .is-bgimg).is-sp-m { --pad: 40px; }
	.t-fp-marquee.t-sec:is(.is-sand, .is-color, .is-bgimg).is-sp-s { --pad: 24px; }
}
.t-marquee { overflow: hidden; white-space: nowrap; color: var(--t-text, var(--key-text)); }
.t-marquee__track { display: inline-flex; animation: t-mq var(--t-mq-s, 50s) linear infinite; font: 600 var(--t-mq-size-sp, 30px)/1.1 var(--en); letter-spacing: -.02em; }
@media (min-width: 1024px) { .t-marquee__track { font-size: var(--t-mq-size, 48px); } }
.t-marquee__track > * { padding-right: 44px; }
.t-marquee.is-outline .t-marquee__track > :nth-child(even):not(.is-wide) { color: transparent; -webkit-text-stroke: 1.2px var(--t-text, var(--key-text)); }
.t-marquee a { color: inherit; text-decoration: none; }
.t-marquee a:is(:hover, :focus-visible) { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .12em; }
.t-marquee:is(:hover, :focus-within, :active) .t-marquee__track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .t-marquee { overflow-x: auto; } .t-marquee__track { animation: none; } }
@keyframes t-mq { to { transform: translateX(-50%); } }

/* 日本地図 */
.t-jmap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
@media (min-width: 900px) { .t-jmap { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; } }
.t-tiles { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); gap: 4px; max-width: 640px; }
.t-tiles button { min-width: 0; aspect-ratio: 1; border: 0; border-radius: 4px; font-size: 9px; font-weight: 600; color: #1f3f38; cursor: pointer; display: grid; place-items: center; padding: 0; line-height: 1.1; background: var(--c, #dfe9e4); transition: transform .15s; }
@media (min-width: 768px) { .t-tiles button { border-radius: 6px; font-size: 11px; } }
.t-tiles button:hover, .t-tiles button[aria-pressed="true"] { transform: scale(1.08); outline: 2px solid var(--key); outline-offset: 1px; position: relative; z-index: 1; }
.t-tiles button:disabled { opacity: .45; cursor: default; transform: none; outline: 0; }
.t-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--sub); margin-top: 14px; }
.t-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.t-prefpanel { color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); padding: 22px 24px; }
.t-prefpanel__rg { font-size: 12px; color: var(--sub); }
.t-prefpanel__rg:empty { display: none; }
.t-prefpanel h3 { margin: 2px 0 4px; font-size: 26px; }
.t-prefpanel__num { font-size: 14px; color: var(--sub); margin: 0 0 14px; }
.t-prefpanel__num b { font: 600 22px var(--en); color: var(--ink); margin-right: 3px; }
.t-prefpanel ul { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.t-prefpanel li { margin: 0; }
.t-prefpanel li a { display: flex; justify-content: space-between; gap: 8px; border: 1px solid var(--line); border-radius: var(--r-s); padding: 6px 12px; font-size: 13px; color: var(--ink); text-decoration: none; }
.t-prefpanel li a:hover { border-color: var(--key); }
/* 記事の中に [tcd_jmap] で出したときも、本文のリンクの色にしない */
.post_content .t-jmap a:not(.t-btn) { color: var(--ink); }
.t-prefpanel li small { color: var(--sub); }

/* ジャンル */
.t-genres { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 130px; gap: 15px; }
@media (min-width: 900px) { .t-genres { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 170px; gap: 20px; } }
@media (min-width: 1024px) { .t-genres { gap: 30px; } }
.t-genres a { position: relative; border-radius: var(--r-l); overflow: hidden; display: block; color: #fff; text-decoration: none; }
.t-genres a:first-child { grid-column: span 2; grid-row: span 2; }
.t-genres .t-photo { position: absolute; inset: 0; }
.t-genres .t-photo.is-none .t-ic { opacity: .35; width: 30%; height: 30%; }
.t-genres__lbl { position: absolute; left: 18px; right: 18px; bottom: 14px; line-height: 1.4; text-shadow: 0 1px 8px rgba(0, 0, 0, .25); }
.t-genres__lbl b { display: block; font-size: 18px; }
.t-genres a:first-child .t-genres__lbl b { font-size: 26px; }
.t-genres__lbl small { font-size: 12px; opacity: .95; }
.t-conds { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.t-conds a { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--key); color: var(--key-ink); background: #fff; border-radius: 999px; padding: 8px 18px; font-size: 14px; font-weight: 600; text-decoration: none; }
.t-conds a:hover { background: var(--key-soft); }

/* ランキング */
.t-rtabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 30px; }
.t-rtabs button { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 6px 16px; cursor: pointer; font-size: 13px; color: var(--ink); }
.t-rtabs button[aria-selected="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.t-rtabs button:not([aria-selected="true"]):hover { border-color: var(--ink); }
.t-rank { display: grid; gap: 20px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .t-rank { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .t-rank { gap: 30px; } }
.t-rank li { margin: 0; }
.t-rk { position: relative; display: block; background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; color: var(--ink); text-decoration: none; height: 100%; }
.t-rk:hover h3 { color: var(--key-text); }
.t-rk .t-photo { height: 160px; }
.t-rk__no { position: absolute; left: 12px; top: 12px; z-index: 1; width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; font: 600 18px var(--en); box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.t-rank li.is-1 .t-rk__no { background: var(--stopby-review-ranking1-color, #d4a53a); color: #fff; }
.t-rank li.is-2 .t-rk__no { background: var(--stopby-review-ranking2-color, #a7a9ac); color: #fff; }
.t-rank li.is-3 .t-rk__no { background: var(--stopby-review-ranking3-color, #b07a4a); color: #fff; }
.t-rk__b { display: block; padding: 14px 16px 16px; font-size: 13px; line-height: 1.6; }
.t-rk h3 { margin: 0 0 4px; font-size: 16px; line-height: 1.5; }
.t-rk small { color: var(--sub); }

/* 店舗の方へ（重なるカード。色・画像・カードの中身はテーマオプション） */
/* 文字の色：決めていなければ地の色に合わせて白か黒（--t-owner-on。キーカラーの地は --on-key） */
.t-owner { --t-owner-on: var(--on-key); position: relative; overflow: hidden; background: var(--t-owner-bg, var(--key)); color: var(--t-owner-fg, var(--t-owner-on)); border-radius: 28px; margin: 0 8px; padding: 60px 0; }
@media (min-width: 1024px) { .t-owner { margin: 0 16px; padding: 100px 0; } }
.t-owner.has-img { background: #000; }
.t-owner__img { position: absolute; inset: 0; }
.t-owner__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.t-owner.has-img::after { content: ""; position: absolute; inset: 0; background: var(--t-owner-bg, var(--key)); opacity: var(--t-owner-op, .8); }
.t-owner > .t-wrap { position: relative; z-index: 1; }
.t-owner .t-sechead .t-en { font-size: var(--t-en-size-sp, 30px); color: var(--t-head, var(--t-owner-fg, var(--t-owner-on))); }
.t-owner .t-sechead .t-en i { color: var(--t-accent, color-mix(in srgb, var(--t-owner-fg, var(--t-owner-on)) 65%, transparent)); }
.t-owner .t-sechead .t-ja { font-size: var(--t-ja-size-sp, 14px); color: var(--t-head, color-mix(in srgb, var(--t-owner-fg, var(--t-owner-on)) 85%, transparent)); margin-top: 10px; }
.t-owner .t-sechead .t-ja.is-main { font-size: calc(var(--t-ja-size-sp, 14px) * 1.6); margin: 0; }
@media (min-width: 1024px) {
	.t-owner .t-sechead .t-en { font-size: var(--t-en-size, 48px); }
	.t-owner .t-sechead .t-ja { font-size: var(--t-ja-size, 16px); }
	.t-owner .t-sechead .t-ja.is-main { font-size: calc(var(--t-ja-size, 16px) * 2.125); }
}
.t-sec.is-center .t-owner .t-wrap > .t-sechead, .t-sec.is-center .t-owner__lead { text-align: center; margin-inline: auto; }
.t-sec.is-center .t-owner__cta { justify-content: center; }
.t-owner__lead { margin: 30px 0 0; max-width: 40em; color: var(--t-text, color-mix(in srgb, var(--t-owner-fg, var(--t-owner-on)) 92%, transparent)); font-size: 14px; line-height: 2.2; }
@media (min-width: 1024px) { .t-owner__lead { font-size: 16px; line-height: 2.4; } }
.t-ostack { display: grid; gap: 20px; margin-top: 40px; }
@media (min-width: 1024px) { .t-ostack { gap: 30px; margin-top: 60px; } }
.t-ocard { position: relative; display: grid; gap: 14px; background: var(--t-ocard-bg, #fff); color: var(--t-ocard-fg, var(--ink)); border-radius: 18px; padding: 24px 20px; box-shadow: 0 -8px 30px rgba(0, 0, 0, .12); }
@media (min-width: 900px) {
	.t-ocard { position: sticky; top: calc(100px + var(--i, 0) * 20px); grid-template-columns: 72px minmax(0, 1fr); gap: 30px; align-items: center; padding: 36px 40px; }
}
.t-ocard__ic { width: 72px; height: 72px; border-radius: 18px; background: var(--key-soft); color: var(--key-text); display: grid; place-items: center; overflow: hidden; }
.t-ocard__ic .t-ic { width: 34px; height: 34px; }
.t-ocard__ic.is-img { background: none; }
.t-ocard__ic.is-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.t-ocard h3 { margin: 0 0 6px; font-size: 18px; line-height: 1.6; }
@media (min-width: 1024px) { .t-ocard h3 { font-size: 20px; } }
.t-ocard p { margin: 0; font-size: 14px; line-height: 2; color: inherit; opacity: .8; }
@media (min-width: 1024px) { .t-ocard p { font-size: 16px; line-height: 2.2; } }
.t-owner__cta { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 40px; }
@media (min-width: 1024px) { .t-owner__cta { margin-top: 60px; } }
.t-owner__cta .t-btn { height: 60px; min-width: 240px; padding: 0 32px; font-size: 14px; }
@media (min-width: 1024px) { .t-owner__cta .t-btn { height: 70px; min-width: 300px; font-size: 16px; } }
.t-owner__cta .t-btn.is-pri { background: var(--t-btn-bg, #fff); color: var(--t-btn-fg, var(--t-owner-bg, var(--key-text))); border-color: var(--t-btn-bg, #fff); }
.t-owner__cta .t-btn:not(.is-pri) { background: transparent; color: var(--t-owner-fg, var(--t-owner-on)); border-color: color-mix(in srgb, var(--t-owner-fg, var(--t-owner-on)) 70%, transparent); }
.t-owner__cta .t-btn:not(.is-pri):hover { background: color-mix(in srgb, var(--t-owner-fg, var(--t-owner-on)) 12%, transparent); }

/* 特集・記事 */
.t-feat { display: grid; gap: 30px; }
@media (min-width: 768px) { .t-feat { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1024px) { .t-feat { gap: 40px 30px; } }
@media (min-width: 768px) { .t-feat[style*="--cols"] { grid-template-columns: repeat(min(var(--cols, 3), 3), minmax(0, 1fr)); } }
@media (min-width: 1024px) { .t-feat[style*="--cols"] { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); } }
.t-feat__desc { margin: 6px 0 0; font-size: 14px; line-height: 1.9; color: var(--t-text, var(--sub)); }

/* お知らせ（日付つきの一覧） */
.t-newslist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.t-newslist li { margin: 0; border-bottom: 1px solid var(--line); }
.t-newslist a { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; align-items: center; padding: 20px 4px; color: inherit; text-decoration: none; }
.t-newslist time { grid-column: 1; font: 13px var(--en); color: var(--t-text, var(--sub)); }
.t-newslist span { grid-column: 1; font-size: 15px; line-height: 1.7; }
.t-newslist .t-ic { grid-column: 2; grid-row: 1 / span 2; color: var(--sub); }
.t-newslist a:hover span { color: var(--key-text); }
@media (min-width: 768px) {
	.t-newslist a { grid-template-columns: 110px 1fr auto; padding: 26px 4px; }
	.t-newslist time, .t-newslist span { grid-column: auto; }
	.t-newslist .t-ic { grid-column: 3; grid-row: 1; }
	.t-newslist span { font-size: 16px; }
}
.t-feat a { display: block; color: var(--ink); text-decoration: none; }
.t-feat .t-photo { height: 190px; border-radius: var(--r-l); }
.t-feat__cat { display: inline-block; margin: 14px 0 6px; font-size: 11px; border: 1px solid var(--key); color: var(--key-text); border-radius: 999px; padding: 2px 12px; }
a.t-feat__cat:hover { background: var(--key); color: var(--on-key); }
.t-feat h3 { margin: 0; font-size: 16px; line-height: 1.8; }
.t-feat a:hover h3 { color: var(--key-text); }

/* フリースペース・バナー（テーマオプションの「フリースペース」） */
.t-banners { display: grid; gap: 20px; }
@media (min-width: 768px) { .t-banners[style*="--cols: 1"], .t-banners[style*="--cols:1"] { grid-template-columns: 1fr !important; } }
@media (min-width: 768px) { .t-banners { grid-template-columns: 1fr 1fr; } }
.t-banner { position: relative; display: block; min-height: 180px; border-radius: var(--r-l); overflow: hidden; color: #fff; text-decoration: none; }
.t-banner .t-photo { position: absolute; inset: 0; }
.t-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, .45)); }
.t-banner__lbl { position: absolute; left: 20px; right: 20px; bottom: 16px; z-index: 1; line-height: 1.4; }
.t-banner__lbl b { display: block; font-size: 20px; }
.t-banner__lbl small { font-size: 13px; opacity: .95; }

/* フリースペース（エディタの内容） */
.t-free { line-height: 2; }
.t-free > *:first-child { margin-top: 0; }

/* ---------- トップページ：数字（PC は --t-cols 列まで、スマホは2列。端の行は中央。A は細い縦線で区切る） ---------- */
.t-count { display: flex; flex-wrap: wrap; justify-content: center; margin: 0; padding: 0; list-style: none; }
.t-count > li { flex: 0 0 calc(100% / var(--t-cols-sp)); min-width: 0; display: grid; gap: 10px; justify-items: center; align-content: start; padding: 24px 8px; text-align: center; box-sizing: border-box; }
@media (min-width: 768px) { .t-count > li { flex-basis: calc(100% / var(--t-cols)); } }
.t-count.is-pc { display: none; }
@media (min-width: 768px) { .t-count.is-pc { display: flex; } .t-count.is-sp { display: none; } }
.t-count__lbl { font-size: 14px; color: var(--sub); }
.t-count__num { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 4px; max-width: 100%; color: var(--key-text); }
.t-count__num b { min-width: 0; overflow-wrap: anywhere; }
.t-count__num b { font: 600 var(--t-num-size-sp, 44px)/1 var(--en); }
.t-count__num small { font-size: 14px; font-weight: 600; }
@media (min-width: 1024px) { .t-count__num b { font-size: var(--t-num-size, 64px); } }
.t-skin-a .t-count { overflow: hidden; }
.t-skin-a .t-count > li { box-shadow: -1px 0 0 var(--line); }

/* ---------- トップページ：背景画像とメッセージ（パララックスは PC だけ） ---------- */
.t-msg { position: relative; display: grid; place-items: center; min-height: 480px; padding: 80px 0; overflow: hidden; color: #fff; text-align: center; background: #222; }
.t-msg.is-h-s { min-height: 360px; }
.t-msg.is-h-l { min-height: 640px; }
@media (min-width: 1024px) { .t-msg { min-height: 600px; } .t-msg.is-h-s { min-height: 440px; } .t-msg.is-h-l { min-height: 800px; } }
.t-msg__bg { position: absolute; inset: 0; background: var(--t-msg-bg-sp) center / cover no-repeat; }
@media (min-width: 768px) { .t-msg__bg { background-image: var(--t-msg-bg); } }
@media (min-width: 1024px) and (hover: hover) { .t-msg.is-parallax .t-msg__bg { background-attachment: fixed; } }
.t-msg__bg::after { content: ""; position: absolute; inset: 0; background: var(--t-overlay); }
.t-msg__in { position: relative; display: grid; justify-items: center; }
.t-msg__ttl { margin: 0; font-size: var(--t-msg-ttl-sp, 26px); font-weight: 600; line-height: 1.5; }
@media (min-width: 1024px) { .t-msg__ttl { font-size: var(--t-msg-ttl, 36px); } }
.t-msg__desc { margin: 24px 0 0; font-size: var(--t-msg-desc-sp, 15px); line-height: 2.2; }
@media (min-width: 1024px) { .t-msg__desc { font-size: var(--t-msg-desc, 15px); } }
.t-msg__btn { margin-top: 40px; min-width: 240px; height: 60px; border: 1px solid #fff; background: none; color: #fff; }
.t-msg__btn:hover { background: #fff; color: var(--ink); }
.t-skin-b .t-msg__ttl { font-weight: 800; }
.t-skin-b .t-msg__btn { border-radius: 12px; border-color: var(--key); background: var(--key); color: var(--on-key); font-weight: 700; }
.t-skin-b .t-msg__btn:hover { background: var(--key); color: var(--on-key); opacity: .8; }

/* ---------- トップページ：流れる写真ギャラリー（--t-strip-sec で1周。マウスを乗せる・キーボードで写真に移る・指で押さえると止まる。動きを減らす設定では横にスクロール） ---------- */
.t-strip { margin-top: 40px; overflow: hidden; }
.t-strip__track { display: flex; gap: 16px; width: max-content; animation: t-strip var(--t-strip-sec, 40s) linear infinite; }
.t-strip:is(:hover, :focus-within, :active) .t-strip__track { animation-play-state: paused; }
.t-strip__item { flex: none; display: block; width: 260px; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 10px; }
@media (min-width: 1024px) { .t-strip__item { width: 400px; } .t-strip__track { gap: 24px; } }
.t-strip__item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.t-strip.is-square .t-strip__item { border-radius: 0; }
.t-skin-b .t-strip:not(.is-square) .t-strip__item { border-radius: 20px; }
@keyframes t-strip { to { transform: translateX(calc(-50% - 8px)); } }
@media (min-width: 1024px) { @keyframes t-strip { to { transform: translateX(calc(-50% - 12px)); } } }
@media (prefers-reduced-motion: reduce) { .t-strip { overflow-x: auto; } .t-strip__track { animation: none; } }

/* ========== 店舗の一覧 ========== */
.t-lsearch { display: grid; }
.t-lsearch__f { display: flex; flex-direction: column; min-width: 0; }
.t-lsearch__lbl { display: none; }
.t-lsearch__in { display: flex; align-items: center; gap: 10px; height: 100%; }
.t-lsearch__in input, .t-lsearch select { flex: 1; width: 100%; min-width: 0; height: 100%; padding: 0; border: 0; background: none; font: inherit; color: var(--ink); outline: 0; }
.t-lsearch__in input::placeholder { color: #999; }
/* キーワードは、入力欄ではなく欄（虫めがねを含む）ごとに選んでいる印を付ける（印はデザインごと） */
.t-site .t-lsearch__in input:focus-visible { outline: 0; }
.t-lsearch select { -webkit-appearance: none; appearance: none; padding-right: 20px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right center; cursor: pointer; }
.t-lsearch__go { display: flex; align-items: center; justify-content: center; border: 0; background: var(--key); color: var(--on-key); font: inherit; cursor: pointer; }
.t-lsearch__go:hover { background: var(--key-ink); }
.t-lsearch__go span { display: none; }
.t-lconds { display: flex; align-items: center; gap: 6px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; line-height: 1; }
.t-lconds > a, .t-lconds > button { flex: none; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: none; color: var(--ink); font: inherit; text-decoration: none; cursor: pointer; }
.t-lconds > [aria-pressed="true"] { border-color: var(--key); background: var(--key); color: var(--on-key); }
.t-lconds__all b { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; background: var(--key); color: var(--on-key); font-size: 11px; }
.t-lconds__lbl { display: none; }
.t-lconds > .t-lconds__clear { border: 0; padding: 0; text-decoration: underline; }
.t-lbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; line-height: 1; }
.t-lbar__count { margin: 0; white-space: nowrap; }
.t-lbar__sort, .t-lbar__map { display: none; }
.t-lbar__sel select { border: 0; background: none; font: inherit; color: var(--ink); cursor: pointer; padding: 2px 0; }
.t-lbar__map { align-items: center; gap: 6px; white-space: nowrap; background: none; color: var(--ink); font: inherit; cursor: pointer; }
.t-lbar__map .t-ic { width: 15px; height: 15px; }
.t-lbar__map .is-show, .is-map-off .t-lbar__map .is-hide { display: none; }
.is-map-off .t-lbar__map .is-show { display: inline; }
.t-list__body > .t-empty { margin-block: 24px 80px; }
.t-lrow a { position: relative; display: grid; color: var(--ink); text-decoration: none; }
.t-lrow .t-photo { height: auto; }
.t-lrow__no, .t-lrow__ex { display: none; }
.t-lrow__b { display: block; min-width: 0; }
.t-lrow__tags { display: block; }
.t-lrow__tags > span + span::before { content: " ・ "; }
.t-shead__price { display: none; }
.t-lrow__name { margin: 0; font-size: inherit; }
.t-lrow__score { display: flex; align-items: center; gap: 4px; }
.t-lrow__score .t-stars i { width: 12px; height: 12px; }
.t-lrow__chips { display: flex; flex-wrap: wrap; gap: 4px; line-height: 1; }
.t-searchpill { display: flex; align-items: center; gap: 8px; height: 44px; border-radius: 999px; background: var(--sand); padding: 0 14px; margin: 16px 0 0; max-width: 640px; color: var(--sub); }
.t-searchpill input { flex: 1; min-width: 0; border: 0; background: none; font-size: 16px; color: var(--ink); height: 100%; padding: 0; }
.t-searchpill input:focus { outline: 0; }
.t-searchpill:focus-within { box-shadow: 0 0 0 2px var(--key); }
.t-fchips { display: flex; gap: 6px; overflow-x: auto; padding: 12px 0; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
@media (min-width: 1024px) { .t-fchips { flex-wrap: wrap; margin-inline: 0; padding-inline: 0; } }
.t-fchip { flex: none; display: inline-flex; align-items: center; gap: 5px; height: 34px; padding: 0 12px; border: 1px solid var(--line); background: #fff; border-radius: 999px; font-size: 13px; color: var(--ink); text-decoration: none; cursor: pointer; white-space: nowrap; }
.t-fchip:hover { border-color: var(--key); }
.t-fchip[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.t-fchip.is-cond { border-color: var(--key); color: var(--key-text); font-weight: 600; }
.t-fchip.is-cond:hover { background: var(--key-soft); }
.t-fchip.is-cond b { background: var(--key); color: var(--on-key); border-radius: 999px; font-size: 10px; padding: 0 6px; line-height: 1.7; }
.t-resbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 4px 0 8px; font-size: 13px; }
.t-resbar p { margin: 0; }
.t-resbar p b { font: 600 18px var(--en); margin-right: 3px; }
.t-resbar select { border: 0; background: none; font-size: 13px; color: var(--key-text); font-weight: 600; cursor: pointer; padding: 2px 0; }

.t-pager { margin-top: 40px; }
.t-pager .nav-links { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
.t-pager .page-numbers { min-width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 14px; padding: 0 10px; }
.t-pager .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }
.t-pager .page-numbers.dots { border: 0; }
.t-pager a.page-numbers:hover { border-color: var(--key); color: var(--key-text); }
/* 「前のページ」「次のページ」の文字と「1 ／ 3」は、デザインCだけ見せる */
.t-pager__txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.t-pager__of { display: none; }

/* 条件のシート（スマホは下から、PCは中央） */
.t-sheet { border: 0; padding: 0; margin: auto auto 0; width: 100%; max-width: 640px; max-height: 88vh; border-radius: 20px 20px 0 0; background: #fff; color: var(--ink); box-shadow: 0 -10px 40px rgba(0, 0, 0, .2); }
@media (min-width: 768px) { .t-sheet { margin: auto; border-radius: var(--r-l); max-height: 80vh; } }
.t-sheet::backdrop { background: rgba(0, 0, 0, .35); }
.t-sheet[open] { display: flex; }
.t-sheet__form { display: flex; flex-direction: column; width: 100%; max-height: inherit; }
.t-sheet__grab { width: 40px; height: 4px; border-radius: 2px; background: #ddd; margin: 8px auto 0; }
@media (min-width: 768px) { .t-sheet__grab { display: none; } }
.t-sheet__hd { display: flex; align-items: center; padding: 6px 8px 6px 18px; border-bottom: 1px solid var(--line); }
.t-sheet__hd b { flex: 1; font-size: 16px; }
.t-sheet__bd { overflow: auto; padding: 4px 18px 18px; }
.t-sheet__ft { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 10px 18px calc(14px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); }

/* ========== 口コミを送ったあとの知らせ（スマホは下から出るシート、PCは中央。角・ボタンはデザインごと） ========== */
.t-posted { max-width: 440px; background: var(--paper); }
.t-posted__in { width: 100%; padding: 10px 24px calc(28px + env(safe-area-inset-bottom, 0px)); text-align: center; }
.t-posted .t-sheet__grab { margin: 0 auto 18px; }
.t-posted__ic { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--warn-soft); color: var(--warn); }
.t-posted__ic.is-ok { background: var(--ok-soft); color: var(--ok); }
.t-posted__ic .t-ic { width: 28px; height: 28px; }
.t-posted h2 { margin: 16px 0 0; font-size: 20px; line-height: 1.5; }
.t-posted p { margin: 10px 0 0; font-size: 14px; line-height: 1.9; color: var(--sub); }
.t-posted__btns { display: grid; gap: 8px; margin-top: 24px; }
.t-posted__btns .t-btn { height: 50px; font-size: 15px; }
@media (min-width: 768px) {
	.t-posted__in { padding: 36px 36px 28px; }
}

/* ========== 口コミを書く：お店を選ぶ画面（スマホは下から出るシート、PCは中央。色・角・文字はデザインごと） ========== */
.t-pick { max-width: 560px; background: var(--paper); }
.t-pick__in { width: 100%; max-height: inherit; overflow: auto; padding: 10px 20px calc(24px + env(safe-area-inset-bottom, 0px)); }
.t-pick .t-sheet__grab { margin: 0 auto 16px; }
.t-pick__hd { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.t-pick__hd .t-iconbtn { flex: none; margin: -10px -12px 0 0; }
.t-pick__eyebrow { margin: 0 0 6px; font-size: 12px; line-height: 1.4; color: var(--mute, #888); }
.t-pick h2 { margin: 0; font-size: 18px; line-height: 1.4; }
.t-pick__search { display: flex; align-items: center; gap: 10px; height: 52px; margin-top: 20px; padding: 0 16px; color: var(--mute, #888); }
.t-pick__search .t-ic { flex: none; width: 18px; height: 18px; }
.t-pick__search input { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; background: none; font-size: 16px; color: var(--ink); -webkit-appearance: none; appearance: none; }
/* 枠は入力欄の外側（デザインごと）に出すので、入力欄そのものの枠とブラウザの「×」は出さない */
.t-pick__search input:focus-visible { outline: 0; }
.t-pick__search input::-webkit-search-cancel-button { -webkit-appearance: none; }
.t-pick__lbl { display: flex; align-items: center; gap: 6px; margin: 22px 0 6px; font-size: 12px; line-height: 1.4; letter-spacing: .04em; color: var(--mute, #888); }
.t-pick__lbl .t-ic { width: 14px; height: 14px; }
.t-pick__row { display: grid; grid-template-columns: 52px minmax(0, 1fr) 16px; gap: 12px; align-items: center; padding: 10px 8px; color: var(--ink); text-decoration: none; }
.t-pick__row:hover, .t-pick__row:focus-visible { background: var(--key-soft); }
.t-pick__ph .t-photo { width: 52px; height: 52px; }
.t-pick__ph .t-photo .t-ic { width: 22px; height: 22px; }
.t-pick__nm { min-width: 0; line-height: 1.4; }
.t-pick__nm b { display: block; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.t-pick__nm small { font-size: 12px; color: var(--mute, #888); }
.t-pick__row > .t-ic { color: var(--mute, #888); }
.t-pick__go { display: none; }
.t-pick__near { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 48px; margin-top: 16px; font: inherit; font-size: 14px; color: var(--ink); cursor: pointer; }
.t-pick__near[hidden] { display: none; }
.t-pick__near .t-ic { width: 18px; height: 18px; }
.t-pick__note { margin: 20px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.8; color: var(--mute, #888); }
.t-pick__note a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (min-width: 768px) {
	.t-pick__in { padding: 28px 28px 22px; }
	.t-pick h2 { font-size: 20px; }
}
.t-ckset { border: 0; margin: 0; padding: 20px 0 0; min-width: 0; }
.t-ckset legend { float: left; width: 100%; font-weight: 600; font-size: 14px; margin: 0 0 10px; padding: 0; }
.t-ckset legend + * { clear: both; }
.t-ck { display: flex; flex-wrap: wrap; gap: 8px; }
.t-ck label { position: relative; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: var(--r-s); padding: 0 12px; height: 40px; cursor: pointer; font-size: 14px; }
.t-ck input { position: absolute; opacity: 0; pointer-events: none; }
.t-ck label:has(input:checked) { border-color: var(--key); background: var(--key-soft); color: var(--key-ink); font-weight: 600; }
.t-ck label:has(input:focus-visible) { outline: 2px solid var(--key); outline-offset: 2px; }
.t-in { height: 48px; border: 1px solid #cfc9c0; border-radius: var(--r-s); padding: 0 14px; background: #fff; width: 100%; font-size: 16px; color: var(--ink); box-sizing: border-box; }
textarea.t-in { height: auto; min-height: 130px; padding: 12px 14px; line-height: 1.8; }
.t-in:focus { border-color: var(--key); outline: 2px solid var(--key-soft); outline-offset: 0; }

/* ========== 店舗ページ ========== */
.t-muted { color: var(--sub); }
.t-small { font-size: 12px; }
.t-small a:hover { text-decoration: underline; text-underline-offset: 3px; }
.t-gallery { position: relative; display: grid; gap: 8px; border-radius: var(--r-m); overflow: hidden; margin-inline: calc(var(--gutter) * -1); border-radius: 0; height: 260px; }
.t-gallery > .t-photo { height: 100%; }
.t-gallery > .t-photo:nth-child(n+2) { display: none; }
.t-gallery__count { position: absolute; right: 12px; bottom: 12px; display: inline-flex; gap: 4px; align-items: center; background: rgba(0, 0, 0, .55); color: #fff; font-size: 12px; border-radius: 999px; padding: 2px 10px; pointer-events: none; }
@media (min-width: 768px) {
	.t-gallery { margin-inline: 0; border-radius: var(--r-m); height: 368px; }
	.t-gallery.is-many { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
	.t-gallery.is-many > .t-photo:nth-child(n+2) { display: block; }
	.t-gallery.is-many > .t-photo:first-child { grid-row: span 2; }
}
.t-shead { display: grid; gap: 16px; padding: 18px 0 18px; }
@media (min-width: 1024px) { .t-shead { grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; align-items: start; padding: 26px 0 22px; } }
.t-shead__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.t-shead__tags a { text-decoration: none; }
.t-shead h1 { margin: 8px 0 6px; font-size: clamp(22px, 3vw, 32px); line-height: 1.4; }
.t-shead__score { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; margin: 0; }
.t-shead__score b { font: 600 20px var(--en); }
.t-shead__score a { color: var(--key-text); }
.t-shead__score a:hover { text-decoration: underline; text-underline-offset: 3px; }
.t-okchips { display: flex; gap: 6px; flex-wrap: wrap; list-style: none; margin: 14px 0 0; padding: 0; }
.t-okchips .t-chip { margin: 0; font-size: 12px; padding: 2px 10px; line-height: 1.6; }
@media (min-width: 768px) { .t-okchips { gap: 8px; } .t-okchips .t-chip { font-size: 13px; padding: 4px 12px; line-height: 1.9; } }
.t-shead__act { display: none; }
@media (min-width: 1024px) { .t-shead__act { display: grid; gap: 10px; } }
/* お店のボタン（店舗の設定のリンク）：PC は右の欄に出すので、見出しには右の欄が無いときだけ。スマホは口コミ・お気に入りが下の帯にあるので、見出しにはこのボタンだけ */
.t-shead__ex { display: none; }
@media (max-width: 1023px) {
	.t-shead__act:has(.t-shead__ex) { display: grid; }
	.t-shead__act > :not(.t-shead__ex) { display: none; }
	.t-shead__ex { display: flex; }
}
@media (min-width: 1024px) { .t-store:has(.t-cols.is-noside) .t-shead__ex { display: flex; } }
.t-anchors { position: sticky; top: var(--t-top); z-index: 20; display: flex; gap: 4px; background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter); }
@media (min-width: 1024px) { .t-anchors { margin-inline: 0; padding: 8px 0; } }
.t-anchors a { flex: none; display: flex; align-items: center; height: 48px; box-sizing: border-box; padding: 0 14px; font-size: 14px; color: var(--ink); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; }
.t-anchors a small { color: var(--sub); }
.t-anchors a[aria-current="true"] { border-color: var(--key); color: var(--key-ink); font-weight: 600; }
.t-anchors a:hover { color: var(--key-text); }
@media (min-width: 1024px) {
	.t-anchors { gap: 6px; padding: 10px 0; }
	.t-anchors a { height: 38px; padding: 0 16px; border: 0; border-radius: 999px; }
	.t-anchors a[aria-current="true"] { background: var(--sand); color: var(--ink); }
}
@media (min-width: 1024px) { .t-anchors a { border-radius: 999px; border-bottom: 0; padding: 6px 16px; } .t-anchors a[aria-current="true"] { background: var(--sand); } }
.t-cols { display: grid; gap: 0; padding-bottom: 40px; }
@media (min-width: 1024px) { .t-cols { grid-template-columns: minmax(0, 1fr) 320px; gap: 48px; padding: 40px 0 100px; } }
/* 右の欄：1023px 以下は本文の下に近くのお店とウィジェット（お店の情報の箱は、下の帯と本文にあるので出さない）。PC はテーマオプションで右・左・なし */
.t-cols__side > .t-sidebox { display: none; }
.t-cols__side > .t-near:first-of-type { margin-top: 8px; }
.t-swidgets { margin-top: 56px; }
@media (min-width: 1024px) {
	.t-cols__side { position: sticky; top: 140px; align-self: start; }
	.t-cols__side > .t-sidebox { display: block; }
	.t-cols__side > .t-near:first-of-type { margin-top: 20px; }
	.t-cols__side:has(.t-swidgets) { position: static; }
	.t-swidgets { margin-top: 40px; }
	.t-cols.is-left { grid-template-columns: 320px minmax(0, 1fr); }
	.t-cols.is-left .t-cols__side { order: -1; }
	/* なし：本文の幅いっぱい。近くのお店は本文の下に3列 */
	.t-cols.is-noside { grid-template-columns: minmax(0, 1fr); }
	.t-cols.is-noside .t-cols__side { position: static; }
	.t-cols.is-noside .t-sidebox { display: none; }
	.t-cols.is-noside .t-near { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
	.t-cols.is-noside .t-near h4 { grid-column: 1 / -1; }
}
.t-blk { padding: 40px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 120px; }
.t-blk:last-child { border-bottom: 0; }
@media (min-width: 1024px) { .t-blk { padding: 0 0 64px; border-bottom: 0; } }
.t-blk .t-sechead { margin-bottom: 24px; }
.t-blk .t-en { font-size: clamp(28px, 3.4vw, 40px); }
.t-intro { font-size: 16px; line-height: 2.4; margin: 0; }
.t-content { margin-top: 20px; }
.t-dl { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 8px 14px; margin: 0 0 16px; font-size: 14px; line-height: 1.8; }
.t-dl dt { color: var(--sub); }
.t-dl dd { margin: 0; overflow-wrap: anywhere; }
.t-dl a { color: var(--key-text); }
.t-owned { display: flex; align-items: center; gap: 4px; color: var(--ok); }
#t-access .t-btn + p { margin-top: 14px; }
.t-photogrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
@media (min-width: 768px) { .t-photogrid { grid-template-columns: repeat(4, 1fr); } }
.t-photogrid .t-photo { aspect-ratio: 1; border-radius: var(--r-s); }

.t-sidebox { border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; background: #fff; }
.t-sidebox__b { display: grid; gap: 10px; padding: 18px; }
.t-sidebox__score { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; font-size: 13px; }
.t-sidebox__score b { font: 600 22px var(--en); }
.t-sidebox__score small { color: var(--sub); }
.t-dl.is-side { grid-template-columns: 72px minmax(0, 1fr); padding: 14px 18px; margin: 0; border-top: 1px solid var(--line); font-size: 13px; }
.t-near { border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; margin-top: 20px; }
.t-near h4 { margin: 0; padding: 12px 18px; font-size: 14px; border-bottom: 1px solid var(--line); }
.t-near a { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px 18px; border-bottom: 1px solid #f1eee9; color: var(--ink); text-decoration: none; font-size: 13px; line-height: 1.5; }
.t-near a:hover { background: var(--hover-bg); }
.t-near a:last-child { border-bottom: 0; }
.t-near .t-photo { height: 48px; border-radius: 6px; }
.t-near b { display: block; }
.t-near__hd { display: flex; align-items: baseline; gap: 8px; }
.t-near__hd b { min-width: 0; }
.t-near__dist { flex: none; font-size: 12px; color: var(--mute); }
/* 1023px 以下の近くのお店は、下に続くウィジェットと同じ形（見出しと、写真つきの行） */
@media (max-width: 1023px) {
	.t-near { border: 0; border-radius: 0; overflow: visible; }
	.t-near h4 { margin: 0 0 4px; padding: 0 0 12px; border-bottom: 1px solid var(--ink); font-size: 18px; font-weight: 700; line-height: 1.4; }
	.t-near a { grid-template-columns: 80px minmax(0, 1fr); gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
	.t-near a:last-child { border-bottom: 1px solid var(--line); }
	.t-near a:hover { background: none; color: var(--key-text); }
	.t-near .t-photo { height: 80px; }
	.t-near b { font-weight: 600; }
}

@media (max-width: 1023px) { .t-has-fbar .p-return-top-button-wrapper { bottom: calc(80px + env(safe-area-inset-bottom, 0px)) !important; } }
.js-t-fav[aria-pressed="true"] .t-ic { fill: currentColor; }

/* 評価のまとめ */
.t-rsum { display: grid; gap: 18px; align-items: center; padding: 18px; border-radius: var(--r-l); background: var(--sand); margin-bottom: 18px; }
@media (min-width: 768px) { .t-rsum { grid-template-columns: 180px minmax(0, 1fr); gap: 28px; padding: 22px 26px; } }
.t-rsum__total { display: grid; justify-items: start; gap: 4px; }
.t-rsum__total b { font: 600 44px/1 var(--en); }
.t-rsum__total small { color: var(--sub); font-size: 12px; }
.t-bars { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; align-items: center; margin: 0; font-size: 13px; }
.t-bars dt { color: var(--ink); }
.t-bars dd { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) 2.4em; gap: 10px; align-items: center; }
.t-bar { display: block; height: 8px; background: #e7e1d8; border-radius: 4px; overflow: hidden; }
.t-bar i { display: block; height: 100%; background: var(--star); }
.t-bars b { text-align: right; font-variant-numeric: tabular-nums; }
.t-fchips.is-in { margin: 0 0 4px; padding-inline: 0; margin-inline: 0; }

/* 口コミ */
.t-rv { border-top: 1px solid var(--line); padding: 22px 0; }
.t-rv .t-av { width: 36px; height: 36px; }
@media (min-width: 768px) { .t-rv .t-av { width: 44px; height: 44px; } }
.t-rv__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 10px 0 0; font-size: 12px; color: var(--sub); }
.t-rv__meta b { color: var(--ink); font-size: 14px; }
.t-rv h3 { margin: 8px 0 2px; font-size: 15px; line-height: 1.6; }
@media (min-width: 768px) { .t-rv h3 { font-size: 17px; } }
.t-rv__body { font-size: 14px; line-height: 1.9; }
@media (min-width: 768px) { .t-rv__body { font-size: 15px; line-height: 2.1; } }
.t-rv__body p { margin: 6px 0 0; }
.t-rv__crit { display: flex; gap: 6px 14px; flex-wrap: wrap; list-style: none; margin: 10px 0 0; padding: 0; font-size: 12px; color: var(--sub); }
.t-rv__crit li { margin: 0; }
.t-rv__crit b { color: var(--ink); }
.t-rv .p-single--review-comments__item-images { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.t-rv .p-single--review-comments__item-images-item { width: 96px; height: 72px; border-radius: var(--r-s); overflow: hidden; display: block; }
.t-rv .p-single--review-comments__item-images-item img { width: 100%; height: 100%; object-fit: cover; }
.t-rv__foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 14px; font-size: 12px; color: var(--sub); }
.t-like { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 12px; cursor: pointer; }
.t-like.is-liked, .t-like[aria-pressed="true"] { color: var(--err); border-color: var(--err); }
.t-like.is-liked .t-ic { fill: currentColor; }
.t-like:hover { border-color: var(--err); color: var(--err); }
.t-reply { margin-top: 14px; background: var(--sand); border-radius: var(--r-m); padding: 12px 16px; font-size: 14px; line-height: 1.9; }
.t-reply b { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--key-ink); }
.t-reply p { margin: 4px 0 0; }

/* お知らせ（状態） */
.t-notice { display: flex; gap: 8px; align-items: flex-start; border-radius: var(--r-m); padding: 10px 14px; font-size: 13px; line-height: 1.7; margin: 0 0 16px; }
.t-notice.is-wait { background: var(--warn-soft); color: #5c4300; }
.t-notice.is-ok { background: var(--ok-soft); color: #1d5937; }
.t-notice.is-ng { background: var(--err-soft); color: #7d251c; }
.t-notice.is-info { background: var(--sand); color: #444; }

/* 口コミを書く（REHUBのフォームを新しい見た目に） */
.t-write { margin-top: 40px; padding: 24px 18px; border: 1px solid var(--line); border-radius: var(--r-l); scroll-margin-top: 120px; }
@media (min-width: 768px) { .t-write { padding: 32px 36px; } }
.t-write__title { display: flex; align-items: center; gap: 8px; margin: 0 0 18px; font-size: 20px; }
.t-write__title .t-ic { color: var(--key-text); }
.t-write .comment-reply-title, .t-write #reply-title { display: none; }
.t-write .p-review-comments, .t-write .comment-respond { padding: 0; margin: 0; background: none; border: 0; box-shadow: none; max-width: none; }
.t-write .p-review-comments__form { display: grid; gap: 22px; border: 0; }
.t-write .p-review-comments__item { margin: 0; padding: 0; border: 0; }
/* タイトルと本文は1つの枠に入っているので、2つ目の見出しの上を項目のあいだと同じだけ空ける */
.t-write .p-review-comments__item > * + .p-review-comments__item-label { margin-top: 22px; }
.t-write .p-review-comments__item-label, .t-write .p-review-comments__rating-item__headline, .t-write .stopby-review-extra legend, .t-write .stopby-review-extra > label, .t-write .stopby-review-extra .stopby-field > span { display: flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; margin: 0 0 8px; }
.t-write .p-review-comments__item-required, .t-req { display: inline-flex; align-items: center; justify-content: center; min-width: 0; height: 20px; margin-left: 4px; font-size: 11px; color: #fff; background: var(--err); border-radius: 3px; padding: 0 7px; font-weight: 600; line-height: 1; vertical-align: middle; }
.t-write .p-review-comments__item-any { display: inline-flex; align-items: center; justify-content: center; min-width: 0; height: 20px; margin-left: 4px; font-size: 11px; border-radius: 3px; padding: 0 7px; line-height: 1; }
.t-write .p-review-comments__item-any { font-size: 10px; color: var(--sub); border: 1px solid var(--line); border-radius: 3px; padding: 0 5px; font-weight: 400; }
.t-write input[type="text"], .t-write input[type="email"], .t-write input[type="url"], .t-write input[type="date"], .t-write select, .t-write textarea { width: 100%; height: 48px; border: 1px solid #cfc9c0; border-radius: var(--r-s); padding: 0 14px; background: #fff; font-size: 16px; color: var(--ink); box-sizing: border-box; }
.t-write textarea { height: auto; min-height: 160px; padding: 12px 14px; line-height: 1.8; }
/* 選ぶ欄の矢印はほかの選ぶ欄と同じ小さな三角（右から14px） */
.t-write select { padding-right: 38px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 14px center; -webkit-appearance: none; appearance: none; }
.t-write input:focus, .t-write textarea:focus, .t-write select:focus { border-color: var(--key); outline: 2px solid var(--key-soft); outline-offset: 0; }
.t-write .p-review-comments__item-desc, .t-hint { font-size: 12px; color: var(--sub); line-height: 1.6; margin: 6px 0 0; }
.t-write .p-review-comments__rating-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.t-write .p-review-comments__rating-item { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.t-write .p-review-comments__rating-item { background: none; margin: 0 !important; padding: 8px 0; border-bottom: 1px solid #f1eee9; }
.t-write .p-review-comments__rating-item__headline { margin: 0; padding: 0; color: var(--ink); font-size: 14px; justify-content: flex-start; }
.t-write .p-review-comments__rating-item__stars { padding: 0; border: 0; }
.t-write .p-review-comments__rating-item__stars-value { margin: 0; }
.t-write .p-review-comments__rating-item__stars-label { display: none; }
.t-write .p-review-comments__rating-item__stars-value { display: flex; gap: 2px; }
.t-write .p-review-comments__rating-item__stars-input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.t-write .p-review-comments__rating-item__stars-icon { font-size: 0; width: 36px; height: 36px; display: grid; place-items: center; cursor: pointer; }
.t-write .p-review-comments__rating-item__stars-icon::before { content: ""; width: 30px; height: 30px; background: var(--star-empty); clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
/* 選んだ星まで塗る（REHUBの js が親に is-checked を付ける） */
.t-write .p-review-comments__rating-item__stars-value.is-checked .p-review-comments__rating-item__stars-icon::before { background: var(--star); }
.t-write .p-review-comments__rating-item__stars-input:checked ~ .p-review-comments__rating-item__stars-input + .p-review-comments__rating-item__stars-icon::before { background: var(--star-empty); }
@media (hover: hover) {
	.t-write .p-review-comments__rating-item__stars-value:hover .p-review-comments__rating-item__stars-icon::before { background: var(--star); }
	.t-write .p-review-comments__rating-item__stars-icon:hover ~ .p-review-comments__rating-item__stars-icon::before { background: var(--star-empty); }
}
.t-write .p-review-comments__rating-item__stars-input:focus-visible + .p-review-comments__rating-item__stars-icon { outline: 2px solid var(--key); border-radius: 4px; }
.t-write .stopby-review-extra .p-review-comments__item-label { margin: 0 0 8px; }
.t-write .stopby-review-extra__date { max-width: 240px; }
/* 評価：各行の右に選んだ点 */
.t-rscore { min-width: 32px; margin-left: 8px; color: var(--score); font: 700 15px/1 var(--en); text-align: right; }
/* 写真：選んだ写真の後ろに「追加」の枠 */
.t-write .p-review-comments__item-image { display: flex; flex-wrap: wrap; gap: 8px; }
.t-write .p-review-comments__item-image-preview { display: contents; margin: 0; padding: 0; list-style: none; }
.t-write .p-review-comments__item-image-preview li { position: relative; order: -1; width: 84px; height: 84px; border-radius: var(--r-photo, 4px); overflow: hidden; }
.t-write .p-review-comments__item-image-preview img { width: 100%; height: 100%; object-fit: cover; }
.t-write .p-review-comments__item-image-preview button { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .6); cursor: pointer; }
.t-write .p-review-comments__item-image-preview button::before, .t-write .p-review-comments__item-image-preview button::after { content: ""; position: absolute; inset: 0; width: 10px; height: 1.5px; margin: auto; background: #fff; transform: rotate(45deg); }
.t-write .p-review-comments__item-image-preview button::after { transform: rotate(-45deg); }
.t-write .p-review-comments__item-image-label { position: relative; display: grid; place-content: center; justify-items: center; gap: 4px; width: 84px; height: 84px; border: 1px dashed #bbb; border-radius: var(--r-photo, 4px); color: var(--mute, #888); font-size: 11px; cursor: pointer; }
.t-write .p-review-comments__item-image-label:hover { border-color: var(--key); color: var(--key-text); }
.t-write .p-review-comments__item-image-label input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.t-write .p-review-comments__item-image-label:focus-within { outline: 2px solid var(--key); outline-offset: 2px; }
.t-write .p-review-comments__item-image-errors { order: 2; width: 100%; margin: 0; padding: 0; list-style: none; font-size: 12px; color: var(--err); }
.t-write .p-review-comments__item-image-errors:empty { display: none; }
.t-write .stopby-review-extra__agree { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.7; background: var(--sand); border-radius: var(--r-m); padding: 12px 14px; cursor: pointer; }
.t-write .stopby-review-extra__agree input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--key); flex: none; }
.t-write .stopby-review-extra__agree a { color: var(--link, var(--key-text)); text-decoration: underline; text-underline-offset: 2px; }
/* 口コミのガイドライン（送信ボタンの下に折りたたむ） */
.t-guide { margin: 12px 0 0; font-size: 12px; line-height: 1.7; color: var(--sub); }
.t-guide summary { display: inline-flex; align-items: center; gap: 6px; color: var(--link, var(--key-text)); cursor: pointer; list-style: none; }
.t-guide summary::-webkit-details-marker { display: none; }
.t-guide summary::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.t-guide[open] summary::after { transform: translateY(1px) rotate(-135deg); }
.t-guide ul { margin: 8px 0 0; padding: 10px 14px 10px 28px; border-radius: var(--r-s); background: var(--sand); list-style: disc; }
.t-guide li + li { margin-top: 2px; }
.t-write .p-review-comments__item--caution { background: var(--sand); border-radius: var(--r-m); padding: 14px 16px; font-size: 13px; }
.t-write .p-review-comments__item--caution-headline { font-size: 14px; margin: 0 0 4px; color: var(--ink); text-align: left; padding: 0; border: 0; }
.t-write .p-review-comments__item--caution-desc { margin: 0; color: #444; }
.t-write .form-submit { margin: 0; }
.t-counter { font-size: 12px; color: var(--sub); text-align: right; margin: 4px 0 0; font-variant-numeric: tabular-nums; }
.t-counter.is-bad { color: var(--err); }
.t-write textarea.is-bad { border-color: var(--err); }
.t-write .p-review-comments__rating-item { display: grid; gap: 2px; }
@media (min-width: 480px) { .t-write .p-review-comments__rating-item { display: flex; flex-wrap: nowrap; justify-content: space-between; } }
.t-write .p-review-comments__item-label { margin-left: 0 !important; padding: 0 !important; }
.t-write .p-review-comments__must-login { margin: 0; }

.t-insta { display: inline-flex; align-items: center; gap: 6px; }
.t-form { display: grid; gap: 18px; }
.t-field { display: grid; gap: 6px; }
.t-field > label { font-weight: 600; font-size: 14px; display: flex; gap: 6px; align-items: center; }
.t-err { color: var(--err); font-size: 13px; margin: 0; }

/* ========== シェアボタン ========== */
.t-share { margin: 28px 0; }
.t-share__label { margin: 0 0 8px; font-size: 12px; color: var(--sub); }
.t-share__list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.t-share__list li { margin: 0; }
.t-share__btn { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid transparent; font-size: 13px; font-weight: 600; color: #fff; text-decoration: none; cursor: pointer; line-height: 1; transition: filter .2s; }
.t-share__btn:hover { color: #fff; opacity: .8; }
.t-share__btn .t-ic { width: 16px; height: 16px; }
.t-share__btn.is-x { background: #000; }
.t-share__btn.is-facebook { background: #1877f2; }
.t-share__btn.is-line { background: #06c755; }
.t-share__btn.is-threads { background: #000; }
.t-share__btn.is-hatena { background: #00a4de; }
.t-share__btn.is-pinterest { background: #e60023; }
.t-share__btn.is-native { background: #fff; color: var(--key-text); border-color: var(--key); }
.t-share__btn.is-native:hover { color: var(--key-text); background: var(--key-soft); filter: none; }
.t-share.is-mono .t-share__btn:not(.is-native) { background: #fff; color: var(--ink); border-color: var(--line); }
.t-share.is-mono .t-share__btn:not(.is-native):hover { border-color: var(--ink); filter: none; color: var(--ink); }
@media (max-width: 767px) { .t-share__btn span { display: none; } .t-share__btn { width: 44px; height: 44px; padding: 0; justify-content: center; } .t-share__btn.is-native { width: auto; padding: 0 16px; } .t-share__btn.is-native span { display: inline; } }

/* スレッズのアイコン（REHUBのアイコンフォントに無いので、SVGで描く） */
.c-sns-icons__link--threads::before { content: "" !important; display: inline-block; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--t-threads) center / contain no-repeat; mask: var(--t-threads) center / contain no-repeat; vertical-align: middle; font-family: inherit !important; }
.c-sns-icons--type2 .c-sns-icons__link--threads { background: #000; color: #fff; }
:root { --t-threads: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.9 11.2c-.1 0-.2-.1-.3-.1-.2-3-1.8-4.7-4.6-4.7-1.7 0-3.1.7-3.9 2l1.5 1c.6-.9 1.6-1.1 2.4-1.1 1 0 1.7.3 2.1.9.3.4.5 1 .6 1.7-.8-.1-1.7-.2-2.6-.1-2.6.1-4.3 1.7-4.2 3.8.1 1.1.6 2 1.5 2.6.8.5 1.8.8 2.8.7 1.4-.1 2.5-.6 3.2-1.6.6-.7.9-1.7 1-2.9.7.4 1.2.9 1.5 1.6.5 1.1.5 2.9-1 4.3-1.3 1.3-2.8 1.8-5.1 1.9-2.6 0-4.5-.8-5.8-2.4C4.6 17.2 4 15.1 4 12.5s.6-4.7 1.8-6.2C7.1 4.8 9 4 11.6 4c2.6 0 4.6.8 5.9 2.4.6.8 1.1 1.7 1.4 2.8l1.8-.5c-.4-1.4-1-2.5-1.8-3.6C17.3 3 14.8 2 11.6 2 8.4 2 6 3 4.4 5 2.9 6.8 2.2 9.3 2.2 12.5s.7 5.7 2.2 7.5C6 22 8.4 23 11.6 23c2.8 0 4.8-.8 6.5-2.4 2.2-2.2 2.1-4.9 1.4-6.6-.5-1.2-1.5-2.2-2.6-2.8zm-4.8 4.5c-1.2.1-2.4-.5-2.5-1.5 0-.8.6-1.7 2.4-1.8h.6c.7 0 1.3.1 1.9.2-.2 2.4-1.4 3-2.4 3.1z'/%3E%3C/svg%3E"); }

/* ========== ページの見出し（ブログ・お知らせ・固定ページ・検索・404） ========== */
.t-phead { padding: 0 0 8px; }
.t-phead h1 { margin: 8px 0 6px; font-family: var(--t-head-ff); font-size: var(--t-head-fs, clamp(24px, 3.2vw, 34px)); line-height: 1.4; font-weight: 600; }
.t-phead p { margin: 0; color: var(--sub); font-size: 14px; line-height: 1.9; max-width: 46em; }
.t-phead.is-image { position: relative; margin: 0 8px; border-radius: 0 0 24px 24px; overflow: hidden; min-height: 240px; display: flex; align-items: flex-end; color: #fff; padding: 0; }
@media (min-width: 1024px) { .t-phead.is-image { margin: 0 16px; min-height: 300px; } }
.t-phead__bg { position: absolute; inset: 0; }
.t-phead__bg img { width: 100%; height: 100%; object-fit: cover; }
.t-phead__bg::after { content: ""; position: absolute; inset: 0; background: var(--t-overlay, rgba(0, 0, 0, .3)); }
.t-phead__in { position: relative; padding-bottom: 28px; }
.t-phead.is-image p { color: rgba(255, 255, 255, .92); }

/* 本文＋サイドバー */
.t-layout { padding-bottom: calc(var(--sec) * .7); }
@media (min-width: 1024px) {
	.t-layout.has-side { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
	.t-layout.has-side.is-left { grid-template-columns: 300px minmax(0, 1fr); }
	.t-layout.has-side.is-left .t-layout__side { order: -1; }
}
.t-layout:not(.has-side) .t-layout__main { max-width: 720px; margin-inline: auto; }
.t-layout__side { margin-top: 48px; }
@media (min-width: 1024px) { .t-layout__side { margin-top: 0; } }
.t-layout__side .l-sidebar, .t-layout__side .l-sidebar__inner { width: auto; margin: 0; padding: 0; float: none; }

/* 一覧（ブログ・お知らせ）：見出し・説明・タブ・カード・行の形。寸法はデザインごと（A は下の「デザインA：一覧」、B・C は skin-b・skin-c） */
.t-ahead__en, .t-ahead__count, .t-abar__count { margin: 0; }
.t-atabs a { color: var(--ink); text-decoration: none; }
.t-pcards { display: grid; }
@media (min-width: 1024px) { .t-pcards.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.t-pcard a { display: block; color: var(--ink); text-decoration: none; }
.t-pcard__b { display: block; }
.t-pcard__m { display: flex; align-items: center; }
.t-pcard h3 { margin: 0; }
.t-pcard a:hover h3 { color: var(--key-text); }
.t-nrow a { display: grid; align-items: center; color: var(--ink); text-decoration: none; }
.t-nrow time { display: block; }
.t-nrow b { display: block; }
.t-nrow a:hover b { color: var(--key-text); }

/* 記事 */
.t-entry { padding-top: 8px; }
.t-ehead { margin-bottom: 36px; }
.t-ehead a.t-feat__cat { margin: 0 0 8px; padding: 5px 10px; border: 0; border-radius: 0; background: var(--sand); color: var(--ink); font-size: 12px; line-height: 1; text-decoration: none; }
.t-ehead h1 { margin: 12px 0 0; font-family: var(--t-title-ff); font-size: var(--t-title-fs, clamp(24px, 3vw, 32px)); line-height: 1.5; font-weight: 600; }
/* 日付（と更新日）、右にタイトルとURLのコピー */
.t-ehead__date { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 14px 0 0; font-size: 13px; color: var(--sub); }
.t-ehead__date .p-copy-title-url { margin: 0 0 0 auto; }
.t-ehead__date .p-copy-title-url__button { display: inline-flex; align-items: center; gap: 6px; width: auto; min-width: 0; height: 30px; padding: 0 12px; border: 1px solid var(--line); border-radius: 0; background: none; color: var(--sub); font-size: 12px; cursor: pointer; }
.t-ehead__date .p-copy-title-url__button:hover { border-color: var(--ink); color: var(--ink); }
.t-ehead__date .p-copy-title-url__button .t-ic { width: 12px; height: 12px; }
.t-ehead__img { margin: 28px 0 0; aspect-ratio: 16 / 9; overflow: hidden; }
.t-ehead__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.t-entry.is-page .t-ehead__img { margin: 0 0 28px; }
@media (max-width: 767px) {
	.t-ehead__date .p-copy-title-url { margin-left: 0; }
	.t-ehead__img { margin: 22px calc(var(--gutter) * -1) 0; }
}
.t-entry__body { font-size: 16px; line-height: 2.4; overflow-wrap: anywhere; }
.t-entry__body p, .t-entry__body li { line-height: inherit; }
.t-entry__body img { max-width: 100%; height: auto; border-radius: var(--r-s); }
.t-related { margin-top: 80px; }
.t-related .t-sechead { margin-bottom: 20px; }
.t-related .t-en { font-size: clamp(26px, 3vw, 34px); }
.t-related .t-pcards.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
.t-comments { margin-top: 80px; }
/* 本文の下：シェア（色は STOPBY設定のシェアボタンのデザイン）と前後の記事 */
.t-entry .t-share { display: flex; align-items: center; gap: 16px; margin: 56px 0 0; padding: 22px 0; border-block: 1px solid var(--line); }
.t-entry .t-share__label { margin: 0; font: 600 12px/1 var(--en); letter-spacing: .1em; color: var(--sub); }
.t-entry .t-share__btn { justify-content: center; width: 40px; height: 40px; padding: 0; border-radius: 0; }
/* ボタンは絵だけ（名前は読み上げ用に残す） */
.t-entry .t-share__btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.t-entry .p-page-nav { margin: 40px 0 0; }
.t-entry .p-page-nav__inner { display: grid; grid-template-columns: 1fr 1fr; border: 0; border-bottom: 1px solid var(--line); }
.t-entry .p-page-nav__item { display: flex; flex-direction: column; align-items: stretch; width: auto; height: auto; min-height: 0; padding: 20px 24px 22px 0; border: 0; border-radius: 0; background: none; color: var(--ink); font-size: 14px; line-height: 1.7; text-decoration: none; }
.t-entry .p-page-nav__item--next { padding: 20px 0 22px 24px; border-left: 1px solid var(--line); text-align: right; }
.t-entry .p-page-nav__item::before, .t-entry .p-page-nav__item::after { content: none; }
/* 「前の記事」「次の記事」を題名の上に */
.t-entry .p-page-nav__title-sp { display: block; order: -1; width: auto; margin-bottom: 6px; font-size: 12px; color: var(--sub); text-align: inherit; }
.t-entry .p-page-nav__title-pc { display: block; max-height: none; font-weight: 600; text-align: inherit; }
.t-entry .p-page-nav__title-pc span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.t-entry .p-page-nav__item:hover .p-page-nav__title-pc { color: var(--key-text); }
@media (max-width: 767px) {
	.t-related .t-pcards.is-2 { gap: 24px 14px; }
	.t-entry .t-share { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 44px; }
	.t-entry .p-page-nav__item { padding: 16px 14px 18px 0; font-size: 13px; }
	.t-entry .p-page-nav__item--next { padding: 16px 0 18px 14px; }
}
.t-entry .p-entry-tag a, .t-entry .p-single__tag a, .t-entry .c-tag-list a, .t-entry .tagcloud a { border-radius: 999px; }

/* 追加コンテンツ（テーマオプションの HTML を本文の上と下に）：文字は本文と同じ（記事は .t-entry__body、店舗ページは .t-content） */
.p-single-banner--top { margin: 0 0 40px; }
.p-single-banner--bottom { margin: 40px 0 0; }
.t-blk .p-single-banner--top { margin: 20px 0 24px; }
.t-blk .p-single-banner--bottom { margin: 24px 0 0; }
.p-single-banner img { max-width: 100%; height: auto; }

/* 本文のショートコード（吹き出し・記事カード・FAQ・お店の評価カード・Googleマップ）。B・C は css/skin-b.css・css/skin-c.css */
/* 吹き出しの色：エディタの設定で色を入れると、要素の style の --sb-bg・--sb-line・--sb-ink が優先される（左1・右1の枠は背景と同じ色） */
:is(.post_content, .t-free) { --sb1-bg: var(--sand); --sb3-bg: var(--key-soft); --sb3-ink: var(--ink); --sb-border: #d9d3ca; --sb-ava-bg: var(--sand); --sb-ava-fg: #b9b0a3; }
:is(.post_content, .t-free) .speech_balloon { display: flex; align-items: flex-start; gap: 18px; margin: 36px 0; }
:is(.post_content, .t-free) .speech_balloon.right { flex-direction: row-reverse; }
:is(.post_content, .t-free) .speech_balloon_user { flex: 0 0 64px; width: 64px; text-align: center; }
:is(.post_content, .t-free) .speech_balloon_user_image { display: block; width: 64px; height: 64px; margin: 0 auto; border-radius: 50%; object-fit: cover; }
:is(.post_content, .t-free) .speech_balloon_user_image.is-none { background: var(--sb-ava-bg); color: var(--sb-ava-fg); }
:is(.post_content, .t-free) .speech_balloon_user_image.is-none svg { display: block; width: 100%; height: 100%; fill: currentColor; }
:is(.post_content, .t-free) .speech_balloon_user_name { margin: 6px -8px 0; font-size: 11px; line-height: 1.5; color: var(--sub); overflow-wrap: anywhere; }
:is(.post_content, .t-free) .speech_balloon_text { --sb-bg: #fff; --sb-line: var(--sb-border); --sb-ink: var(--ink); position: relative; flex: 1 1 auto; min-width: 0; }
:is(.post_content, .t-free) .speech_balloon1 { --sb-bg: var(--sb1-bg); --sb-line: var(--sb-bg); }
:is(.post_content, .t-free) .speech_balloon3 { --sb-bg: var(--sb3-bg); --sb-line: var(--sb-bg); --sb-ink: var(--sb3-ink); }
:is(.post_content, .t-free) .speech_balloon_text_inner { position: relative; padding: 15px 22px; border: 1px solid var(--sb-line); background: var(--sb-bg); color: var(--sb-ink); font-size: 15px; line-height: 2; }
:is(.post_content, .t-free) .speech_balloon_text_inner p { margin: 0; }
:is(.post_content, .t-free) .speech_balloon_text_inner p + p { margin-top: .6em; }
/* 顔の側の三角（.before が枠の色、.after が中の色で 1px 内側に重ねる） */
:is(.post_content, .t-free) .speech_balloon_text :is(.before, .after) { position: absolute; top: 24px; width: 0; height: 0; border: 8px solid transparent; pointer-events: none; }
:is(.post_content, .t-free) .speech_balloon.left .before { right: 100%; border-left-width: 0; border-right: 10px solid var(--sb-line); }
:is(.post_content, .t-free) .speech_balloon.left .after { right: calc(100% - 1px); border-left-width: 0; border-right: 10px solid var(--sb-bg); }
:is(.post_content, .t-free) .speech_balloon.right .before { left: 100%; border-right-width: 0; border-left: 10px solid var(--sb-line); }
:is(.post_content, .t-free) .speech_balloon.right .after { left: calc(100% - 1px); border-right-width: 0; border-left: 10px solid var(--sb-bg); }
@media (max-width: 767px) {
	:is(.post_content, .t-free) .speech_balloon { gap: 14px; margin: 28px 0; }
	:is(.post_content, .t-free) .speech_balloon_user { flex-basis: 48px; width: 48px; }
	:is(.post_content, .t-free) .speech_balloon_user_image { width: 48px; height: 48px; }
	:is(.post_content, .t-free) .speech_balloon_user_name { font-size: 10px; }
	:is(.post_content, .t-free) .speech_balloon_text_inner { padding: 12px 16px; font-size: 14px; line-height: 1.9; }
	:is(.post_content, .t-free) .speech_balloon_text :is(.before, .after) { top: 16px; }
}
:is(.post_content, .t-free) .cardlink { position: relative; display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 0 24px; align-items: center; margin: 36px 0; padding: 20px; border: 1px solid var(--line); background: #fff; line-height: 1.7; }
:is(.post_content, .t-free) .cardlink-thumbnail { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
:is(.post_content, .t-free) .cardlink-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
:is(.post_content, .t-free) .cardlink-content, :is(.post_content, .t-free) .cardlink-date-title { display: grid; gap: 6px; min-width: 0; }
:is(.post_content, .t-free) .cardlink-date-title { gap: 4px; }
:is(.post_content, .t-free) .cardlink-date { font: 12px/1.4 var(--en); color: var(--sub); }
:is(.post_content, .t-free) .cardlink-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--ink); font-size: 17px; font-weight: 600; line-height: 1.6; text-decoration: none; }
/* カード全体を押せるように */
:is(.post_content, .t-free) .cardlink-title::after { content: ""; position: absolute; inset: 0; }
:is(.post_content, .t-free) .cardlink:hover .cardlink-title { color: var(--key-text); }
:is(.post_content, .t-free) .cardlink-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--sub); font-size: 13px; line-height: 1.8; }
:is(.post_content, .t-free) .cardlink-excerpt:empty, :is(.post_content, .t-free) .cardlink-footer { display: none; }
@media (max-width: 767px) {
	:is(.post_content, .t-free) .cardlink { grid-template-columns: 112px minmax(0, 1fr); gap: 0 14px; padding: 14px; margin: 28px 0; }
	:is(.post_content, .t-free) .cardlink-title { font-size: 14px; }
	:is(.post_content, .t-free) .cardlink-excerpt { display: none; }
}
:is(.post_content, .t-free) .p-faq-list { margin: 36px 0; border-top: 1px solid var(--line); }
:is(.post_content, .t-free) .p-faq-list__item { border-bottom: 1px solid var(--line); }
:is(.post_content, .t-free) .p-faq-list__title { display: grid; grid-template-columns: 32px minmax(0, 1fr) 20px; gap: 12px; align-items: center; padding: 20px 0; color: var(--ink); font-size: 16px; font-weight: 600; line-height: 1.7; cursor: pointer; }
:is(.post_content, .t-free) .p-faq-list__q, :is(.post_content, .t-free) .p-faq-list__a { display: grid; place-items: center; width: 32px; height: 32px; font: 600 18px/1 var(--en); }
:is(.post_content, .t-free) .p-faq-list__q { color: var(--key-text); }
:is(.post_content, .t-free) .p-faq-list__a { color: var(--sub); }
:is(.post_content, .t-free) .p-faq-list__title-icon { position: relative; width: 20px; height: 20px; }
:is(.post_content, .t-free) .p-faq-list__title-icon::before, :is(.post_content, .t-free) .p-faq-list__title-icon::after { content: ""; position: absolute; top: 9px; left: 3px; width: 14px; height: 1.5px; background: var(--ink); transition: transform .2s; }
:is(.post_content, .t-free) .p-faq-list__title-icon::after { transform: rotate(90deg); }
:is(.post_content, .t-free) .is-active .p-faq-list__title-icon::after { transform: rotate(0); }
:is(.post_content, .t-free) .p-faq-list__content { height: 0; overflow: hidden; transition: height .3s; }
:is(.post_content, .t-free) .p-faq-list__desc { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; margin: 0; padding: 0 32px 22px 0; font-size: 15px; line-height: 2; }
@media (max-width: 767px) {
	:is(.post_content, .t-free) .p-faq-list__title { grid-template-columns: 26px minmax(0, 1fr) 18px; gap: 10px; padding: 16px 0; font-size: 15px; }
	:is(.post_content, .t-free) .p-faq-list__q, :is(.post_content, .t-free) .p-faq-list__a { width: 26px; height: 26px; font-size: 16px; }
	:is(.post_content, .t-free) .p-faq-list__desc { grid-template-columns: 26px minmax(0, 1fr); gap: 10px; padding: 0 0 18px; font-size: 14px; }
}
:is(.post_content, .t-free) .t-revcard { margin: 36px 0; border: 1px solid var(--line); background: #fff; line-height: 1.7; }
:is(.post_content, .t-free) .t-revcard__head { display: grid; grid-template-columns: 96px minmax(0, 1fr) 16px; gap: 16px; align-items: center; padding: 20px 24px; color: var(--ink); text-decoration: none; }
:is(.post_content, .t-free) .t-revcard__head .t-photo { width: 96px; height: 64px; border-radius: 0; }
:is(.post_content, .t-free) .t-revcard__head .t-photo img { width: 100%; height: 100%; object-fit: cover; }
:is(.post_content, .t-free) .t-revcard__head .t-photo .t-ic { width: 22px; height: 22px; }
:is(.post_content, .t-free) .t-revcard__name small { display: block; color: var(--sub); font-size: 12px; }
:is(.post_content, .t-free) .t-revcard__name b { display: block; font-size: 18px; font-weight: 600; line-height: 1.5; }
:is(.post_content, .t-free) .t-revcard__head:hover b { color: var(--key-text); }
:is(.post_content, .t-free) .t-revcard .t-rsum { margin: 0 24px; }
:is(.post_content, .t-free) .t-revcard__more { display: flex; justify-content: center; align-items: center; gap: 4px; height: 52px; margin-top: 20px; border-top: 1px solid var(--line); color: var(--key-text); font-size: 14px; font-weight: 600; text-decoration: none; }
:is(.post_content, .t-free) .t-revcard__more:hover { background: var(--hover-bg); }
@media (max-width: 767px) {
	:is(.post_content, .t-free) .t-revcard__head { grid-template-columns: 72px minmax(0, 1fr) 16px; gap: 12px; padding: 14px; }
	:is(.post_content, .t-free) .t-revcard__head .t-photo { width: 72px; height: 54px; }
	:is(.post_content, .t-free) .t-revcard__name b { font-size: 16px; }
	:is(.post_content, .t-free) .t-revcard .t-rsum { margin: 0 14px; }
	:is(.post_content, .t-free) .t-revcard__more { margin-top: 14px; height: 48px; }
}
:is(.post_content, .t-free) .qt_google_map { margin: 36px 0; }
:is(.post_content, .t-free) .qt_googlemap_embed { display: block; width: 100%; height: 400px; border: 1px solid var(--line); box-sizing: border-box; }
@media (max-width: 767px) { :is(.post_content, .t-free) .qt_googlemap_embed { height: 280px; } }

/* 検索結果 */
.t-search { padding-bottom: calc(var(--sec) * .7); }
.t-search .t-searchpill { margin: 8px 0 12px; max-width: none; }
.t-srows { border-top: 1px solid var(--line); }
.t-srow a { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.t-srow .t-photo { height: 66px; border-radius: var(--r-s); }
.t-srow small { display: block; font-size: 12px; color: var(--sub); }
.t-srow b { display: block; font-size: 15px; line-height: 1.6; }
.t-srow em { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-style: normal; font-size: 13px; color: #555; line-height: 1.7; margin-top: 2px; }
.t-srow a:hover b { color: var(--key-text); }
.t-srow a:not(:has(.t-photo)) { grid-template-columns: minmax(0, 1fr); }
.t-search .t-resbar { flex-wrap: wrap; }
.t-search .t-empty { margin-top: 8px; }
/* ヒットした結果は、見つからないときの案内と同じ箱に入れる */
.t-spanel { margin-top: 8px; padding: 8px 28px; border-radius: var(--r-l); background: var(--sand); }
.t-spanel.t-srows { border-top: 0; }
.t-spanel .t-srow:last-child a { border-bottom: 0; }
/* 結果の下のコンテンツ（STOPBY設定のコンテンツビルダー）：本文の幅に、見出しは左 */
.t-srecs .t-sec { margin-top: 64px; padding: 0; background: none; }
.t-site .t-srecs .t-sec .t-wrap { max-width: none; padding: 0; }
.t-srecs .t-head { margin-bottom: 24px; }
.t-skin-a .t-srecs .t-head { flex-direction: row; justify-content: space-between; align-items: end; gap: 16px; text-align: left; }
.t-skin-a .t-srecs .t-sechead { text-align: left; align-items: flex-start; }
.t-skin-a .t-srecs .t-sechead .t-en { font-size: 28px; }
@media (min-width: 1024px) {
	.t-site .t-srecs .t-scards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
	.t-site .t-srecs .t-genres { grid-template-columns: repeat(3, 1fr); gap: 16px; }
	/* 口コミは3枚まで横に（A・B。C は2列のまま） */
	.t-skin-a .t-srecs .t-fp-review_comments .t-rail, .t-skin-b .t-srecs .t-fp-review_comments .t-rail { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-columns: auto; overflow: visible; max-width: none; padding-inline: 0; gap: 24px; }
	/* お知らせ（A）は見出しの列を作らず、見出しの下に並べる */
	.t-skin-a .t-srecs .t-fp-news .t-wrap { display: block; }
	.t-skin-a .t-srecs .t-fp-news .t-sec__more { justify-content: center; margin-top: 32px; }
}
.t-empty__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* 店舗の一覧の写真を出さないとき（お店の設定「アイキャッチ画像」）：写真の列を詰め、写真の上に重ねていた順位は文字の上に */
.t-no-store-photo.t-site :is(.t-scard, .t-rk, .t-lrow a, .t-rkl__item a, .t-near a, .t-mapcard) { grid-template-columns: minmax(0, 1fr); }
.t-no-store-photo.t-site :is(.t-pick__row, .t-revcard__head) { grid-template-columns: minmax(0, 1fr) 16px; }
.t-no-store-photo.t-site :is(.t-rk__no, .t-lrow__no, .t-rkl__no) { position: static; justify-self: start; margin-bottom: 8px; }

/* 404：ヘッダーの下を写真（無ければ暗い色の面）で画面いっぱいに覆い、中央に白い文字。フッターは出さない */
/* 画面の高さから、ヘッダー（デザインごとに高さが違う）を除いた残りいっぱいに伸ばす（管理バーの分は body の padding-top に含まれる） */
.error404.t-site { display: flex; flex-direction: column; min-height: 100svh; }
.error404 .l-container, .error404 .t-main { display: flex; flex-direction: column; flex: 1; }
.t-404 { --t-404-bg: #1f2326; position: relative; display: grid; place-items: center; flex: 1; padding: 60px var(--gutter); overflow: hidden; background: var(--t-404-bg); color: #fff; text-align: center; }
.t-404__bg { position: absolute; inset: 0; }
.t-404__bg img { width: 100%; height: 100%; object-fit: cover; }
.t-404__bg::after { content: ""; position: absolute; inset: 0; background: var(--t-overlay); }
.t-404__in { position: relative; width: min(100%, 560px); }
.t-404__ttl { margin: 0; font: 700 clamp(30px, 4vw, 44px)/1.3 var(--en); letter-spacing: .02em; }
.t-404__desc { margin: 18px 0 0; font-size: 14px; line-height: 2; color: rgba(255, 255, 255, .9); }
.t-404__search { display: flex; height: 52px; margin: 32px 0 0; background: #fff; }
.t-404__search input { flex: 1; min-width: 0; padding: 0 16px; border: 0; background: none; color: var(--ink); font-size: 15px; }
.t-404__search button { display: flex; align-items: center; justify-content: center; gap: 6px; flex: none; width: 96px; border: 0; background: var(--key); color: var(--on-key); font-size: 14px; font-weight: 600; cursor: pointer; }
.t-404__search button:hover { background: var(--key-ink); }
.t-404__top { display: inline-flex; align-items: center; justify-content: center; min-width: 220px; height: 52px; margin-top: 20px; padding: 0 24px; border: 1px solid rgba(255, 255, 255, .8); border-radius: 999px; color: #fff; font-size: 14px; text-decoration: none; }
.t-404__top:hover { background: rgba(255, 255, 255, .12); }
.error404 .t-footer, .error404 .p-footer-bar, .error404 #js-footer-bar { display: none; }
@media (min-width: 768px) {
	.t-404__desc { font-size: 15px; }
	.t-404__search { height: 56px; margin-top: 36px; }
	.t-404__search button { width: 120px; font-size: 15px; }
	.t-404__top { min-width: 260px; height: 56px; margin-top: 24px; font-size: 15px; }
}

/* 中身がREHUBのままのページ（ランキング・口コミ一覧・LP）の見出しを新しい見た目に */
.t-site .p-page-header { min-height: 0; height: auto !important; padding: 40px 0 24px; background: none; color: var(--ink); text-align: left; }
.t-site .p-page-header__inner, .t-site .p-page-header__content { height: auto; padding: 0; text-align: left; color: inherit; }
.t-site .p-page-header__content { position: relative; top: auto; left: auto; transform: none; }
.t-site .p-page-header__inner { max-width: calc(1100px + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); box-sizing: border-box; width: 100%; }
.t-site .p-page-header__headline { font-size: clamp(24px, 3.2vw, 34px) !important; font-weight: 600; color: inherit !important; text-align: left; margin: 0; }
.t-site .p-page-header__description { color: var(--sub); font-size: 14px; }
.t-site .p-page-header:has(.p-page-header__image) { position: relative; color: #fff; min-height: 240px; display: flex; align-items: flex-end; margin: 0 16px; border-radius: 0 0 24px 24px; overflow: hidden; }
.t-site .p-page-header:has(.p-page-header__image) .p-page-header__description { color: rgba(255, 255, 255, .92); }

/* ========== ログイン・会員登録・お店の方の登録 ========== */
.t-auth { padding: 32px var(--gutter) calc(var(--sec) * .8); background: var(--sand); }
.t-auth__box { max-width: 480px; margin: 0 auto; background: #fff; border-radius: var(--r-l); padding: 28px 20px; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
@media (min-width: 600px) { .t-auth { padding-top: 56px; } .t-auth__box { padding: 40px 44px; } }
.t-auth h1 { margin: 0 0 8px; font-size: clamp(20px, 2.6vw, 26px); line-height: 1.5; }
.t-auth h1 + .t-form { margin-top: 22px; }
.t-auth__lead { margin: 0 0 22px; color: var(--sub); font-size: 14px; line-height: 1.9; }
.t-auth__lead:has(+ .t-auth__lead) { margin-bottom: 8px; }
.t-auth .t-form { gap: 16px; }
.t-auth input[name="code"] { font: 600 28px/1 var(--en); letter-spacing: .4em; text-align: center; height: 60px; }
.t-auth__links { margin: 18px 0 0; text-align: center; font-size: 13px; color: var(--sub); }
.t-auth__links a { color: var(--key-text); display: inline-block; }
.t-auth__links a:hover { text-decoration: underline; text-underline-offset: 3px; }
.t-auth__links.is-pair { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; }
.t-auth__note { text-align: center; margin-top: 14px; }
.t-auth__resend { text-align: center; margin-top: 6px; }
.t-auth__alt { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); text-align: center; }
.t-auth__alt p { margin: 0 0 10px; font-size: 13px; color: var(--sub); }
.t-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.7; cursor: pointer; }
.t-agree input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--key); flex: none; }
.t-agree a { color: var(--key-text); }
.t-pass { display: flex; gap: 8px; align-items: center; }
.t-pass .t-in { flex: 1; min-width: 0; }
.t-checks { display: flex; gap: 14px; list-style: none; margin: 6px 0 0; padding: 0; font-size: 12px; color: var(--sub); }
.t-checks li { margin: 0; display: flex; align-items: center; gap: 4px; }
.t-checks li::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid #cfc9c0; box-sizing: border-box; }
.t-checks li.is-ok { color: var(--ok); }
.t-checks li.is-ok::before { border-color: var(--ok); background: var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E") center / 10px no-repeat; }
.t-steps { margin: 0 0 22px; padding: 0; list-style: none; counter-reset: s; display: grid; gap: 8px; }
.t-steps li { counter-increment: s; display: flex; gap: 10px; align-items: center; font-size: 14px; margin: 0; }
.t-steps li::before { content: counter(s); width: 26px; height: 26px; border-radius: 50%; background: var(--key-soft); color: var(--key-text); font: 600 13px/26px var(--en); text-align: center; flex: none; }
.t-joinlist { margin: 16px 0 18px; display: grid; gap: 8px; }
.t-joinrow { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: var(--r-m); }
.t-joinrow .t-photo { height: 56px; border-radius: var(--r-s); }
.t-joinrow b { display: block; font-size: 14px; line-height: 1.5; }
.t-joinrow small { display: block; font-size: 12px; color: var(--sub); }
.t-joinrow .t-photo .t-ic { width: 40%; height: 40%; }
.t-joinrow.is-store { grid-template-columns: 56px minmax(0, 1fr); margin-top: 18px; }
.t-joinrow__owned { font-size: 12px; color: var(--mute, #888); white-space: nowrap; }
@media (max-width: 599px) {
	.t-joinrow { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; padding: 8px 10px; }
	.t-joinrow.is-store { grid-template-columns: 48px minmax(0, 1fr); }
	.t-joinrow .t-photo { height: 48px; }
	.t-joinrow .t-btn.is-s { padding: 0 12px; }
	.t-joinrow b { font-size: 13px; }
	.t-joinrow small { font-size: 11px; }
}

/* ---------- お店の方：目印・登録の流れ・承認待ち ---------- */
.t-auth__eyebrow { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 10px; padding: 4px 10px; border-radius: 999px; background: var(--key-soft); color: var(--key-text); font-size: 12px; font-weight: 600; }
.t-auth__eyebrow .t-ic { width: 14px; height: 14px; }
.t-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 28px; padding: 0; list-style: none; counter-reset: s; }
.t-flow.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.t-flow li { counter-increment: s; position: relative; margin: 0; text-align: center; font-size: 11px; line-height: 1.4; color: var(--sub); }
.t-flow li::before { content: counter(s); position: relative; z-index: 1; display: block; width: 26px; height: 26px; margin: 0 auto 6px; border: 1.5px solid var(--line); border-radius: 50%; background: #fff; color: var(--sub); font: 600 12px/23px var(--en); box-sizing: border-box; }
.t-flow li + li::after { content: ""; position: absolute; top: 12px; right: calc(50% + 13px); left: calc(-50% + 13px); height: 1.5px; background: var(--line); }
.t-flow li.is-done::before { content: ""; border-color: var(--key); background: var(--key) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E") center / 12px no-repeat; }
.t-flow li.is-done + li::after, .t-flow li.is-current::after { background: var(--key); }
.t-flow li.is-current { color: var(--ink, #222); font-weight: 600; }
.t-flow li.is-current::before { border-color: var(--key); background: var(--key); color: var(--on-key); }
.t-auth__status { display: grid; justify-items: center; text-align: center; }
.t-auth__status-ic { display: grid; place-items: center; width: 64px; height: 64px; margin: 4px 0 18px; border-radius: 50%; background: var(--key-soft); color: var(--key-text); }
.t-auth__status-ic .t-ic { width: 28px; height: 28px; }
.t-auth__status .t-auth__lead { margin-bottom: 20px; }
.t-auth__summary { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; width: 100%; margin: 0 0 24px; padding: 16px 18px; border-radius: var(--r-m); background: var(--sand); font-size: 13px; line-height: 1.7; text-align: left; }
.t-auth__summary dt { color: var(--sub); }
.t-auth__summary dd { margin: 0; overflow-wrap: anywhere; }
.t-auth .t-notice { margin: 0 0 20px; }
.t-auth .t-form .t-notice { margin: 0; }
.t-notice a { color: var(--key-text); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.t-notice a:hover { opacity: .7; }
.t-auth .t-ckset { padding-top: 0; }
.t-field__label { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 600; }

/* ---------- お店のページの登録（探す・管理の申請・新しく作る） ---------- */
.t-join__count { margin: 18px 0 0; font-size: 13px; color: var(--sub); }
.t-join__search + .t-joinlist, .t-join__count + .t-joinlist { margin-top: 10px; }
.t-join__new { gap: 6px; margin-top: 8px; }
.t-join__lead.t-auth__lead { margin-top: 16px; }
.t-join__invite { margin: 0; padding: 14px 16px; border-radius: var(--r-m); background: var(--sand); font-size: 13px; line-height: 1.8; color: var(--sub); }
.t-join__invite b { color: var(--ink, #222); }
.t-join__invite a { display: block; color: var(--key-text); text-decoration: underline; text-underline-offset: 2px; }
.t-join__invite a:hover { text-decoration: none; }
.t-files { display: grid; gap: 8px; }
.t-files:empty { display: none; }
.t-file { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: var(--r-m); font-size: 13px; line-height: 1.5; }
.t-file b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.t-file small { display: block; color: var(--sub); font-size: 12px; }
.t-file__thumb { height: 56px; border-radius: var(--r-s); background: #e4e1dc center / cover no-repeat; }
.t-drop { display: flex; align-items: center; justify-content: center; gap: 6px; height: 52px; margin-top: 8px; border: 1px dashed #bbb; border-radius: var(--r-m); color: var(--key-text); font-size: 14px; cursor: pointer; }
.t-drop:hover { border-color: var(--key); background: var(--hover-bg); }
.t-drop:focus-within { outline: 2px solid var(--key); outline-offset: 2px; }
.t-wizard__step { display: grid; gap: 18px; min-width: 0; margin: 0; padding: 0; border: 0; }
.t-wizard.is-js .t-wizard__step:not(.is-on) { display: none; }
.t-wizard__acts { display: flex; flex-wrap: wrap; gap: 10px; }
.t-wizard__acts .t-btn { padding: 0 24px; }
.t-wizard__acts .t-btn.is-pri { flex: 1; }
@media (max-width: 599px) { .t-wizard__acts .t-btn { flex: 1 1 100%; } .t-wizard__acts .t-btn.is-pri { order: -1; } }
.t-pinmap { height: 150px; margin-top: 10px; border-radius: var(--r-m); overflow: hidden; z-index: 0; }

/* ---------- 招待から引き継ぐ ---------- */
.t-invite__eyebrow { margin: 0 0 6px; font-size: 12px; font-weight: 600; color: var(--key-text); }
.t-invite h1 { font-size: 20px; }
.t-invite input[name="code"] { font: 600 22px/1 var(--en); letter-spacing: .12em; text-align: center; height: 56px; }
.t-invite__store { margin-top: 18px; border: 1px solid var(--line); }
.t-invite__photo, .t-invite__store .t-photo { display: block; height: 150px; }
.t-invite__info { padding: 14px 16px; line-height: 1.6; }
.t-invite__info b { display: block; font-size: 15px; }
.t-invite__info small { display: block; font-size: 12px; color: var(--sub); }
.t-invite__lead { margin: 16px 0 0; font-size: 13px; }
.t-invite__merits { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; font-size: 13px; line-height: 1.6; }
.t-invite__merits li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; margin: 0; }
.t-invite__merits .t-ic { color: var(--key-text); }
.t-invite__plan { margin: 20px 0 0; padding: 12px 14px; background: var(--key-soft); font-size: 13px; line-height: 1.6; }
.t-invite__plan small { font-size: 12px; color: var(--sub); }
.t-invite .t-btn.is-block { margin-top: 24px; }
.t-invite .t-btn.is-block + .t-btn.is-block { margin-top: 10px; }
.t-invite__login { border-color: var(--ink, #222); color: var(--ink, #222); }
.t-invite__confirm { margin-top: 24px; }
.t-invite__confirm .t-btn.is-block { margin-top: 0; }
.t-invite__who { margin: 0; padding: 14px; border: 1px solid var(--line); font-size: 13px; line-height: 1.6; }
.t-invite__done { text-align: center; }
.t-invite__mark { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--key); color: var(--on-key); margin-bottom: 10px; }
.t-invite .t-err { margin: 16px 0 0; }

/* ========== フッター ========== */
.t-footer { background: #1f2a27; color: #d8dfdc; padding: 56px 0 calc(24px + env(safe-area-inset-bottom, 0px)); font-size: 13px; margin-top: 0; }
@media (min-width: 1024px) { .t-footer { padding-top: 60px; } }
.t-footer a { color: #b9c6c1; text-decoration: none; }
.t-footer a:hover { color: #fff; }
.t-footer__top { display: grid; gap: 28px; margin-bottom: 40px; }
@media (min-width: 900px) { .t-footer__top { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 60px; } }
.t-footer .t-logo, .t-footer .t-logo a { color: #fff; }
.t-footer__desc { margin: 12px 0 0; line-height: 1.9; color: #b9c6c1; }
.t-footer__sns { display: flex; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; flex-wrap: wrap; }
.t-footer__sns .c-sns-icons__item { margin: 0 !important; }
/* 暗い背景の上でも見えるように、アイコンは白・枠は明るめ。押せる範囲は44px */
.t-footer__sns a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .06); color: #fff !important; display: grid; place-items: center; font-size: 16px; text-decoration: none; transition: background .2s, border-color .2s; }
.t-footer__sns a::before { color: #fff; }
/* note のアイコンは塗りの色で描くので、文字の色に合わせる */
.t-footer__sns .c-sns-icons__link--note::before { background-color: currentColor; }
.t-footer__sns a:hover, .t-footer__sns a:focus-visible { background: var(--key); border-color: var(--key); opacity: 1; }
.t-footer h4 { color: #fff; font-size: 14px; margin: 0 0 12px; }
.t-prefs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
@media (min-width: 900px) { .t-prefs { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.t-prefs div { line-height: 2; }
.t-prefs b { display: block; color: #fff; font-size: 12px; margin-bottom: 2px; }
.t-prefs__list { display: flex; flex-wrap: wrap; gap: 0 10px; }
/* 見出しの英字は B・C だけで出す */
.t-footer__label i { display: none; }
/* フッターメニュー1〜3を列に並べる（STOPBY設定「フッター」で選んだとき） */
.t-fcols { display: grid; gap: 28px; }
@media (min-width: 900px) { .t-fcols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; } }
.t-fcol ul { list-style: none; margin: 0; padding: 0; }
.t-fcol li { margin: 0 0 10px; line-height: 1.6; }
.t-fmenu ul { display: flex; flex-wrap: wrap; gap: 6px 22px; list-style: none; margin: 0 0 24px; padding: 0; }
.t-fmenu li { margin: 0; }
.t-footer__bot { display: flex; justify-content: space-between; border-top: 1px solid #3a4743; padding-top: 18px; flex-wrap: wrap; gap: 10px; color: #8fa29b; font-size: 12px; }

/* ========== ドロワーメニュー（スマホ・タブレット） ========== */
.t-drawer.p-drawer-menu { width: min(360px, 88vw); right: calc(min(360px, 88vw) * -1); padding: 0 0 32px; background: #fff; color: var(--ink); box-shadow: -10px 0 40px rgba(0, 0, 0, .15); }
html.show-drawer .t-drawer.p-drawer-menu { transform: translateX(calc(min(360px, 88vw) * -1)); }
/* ドロワーのボタンは、ドロワーのリンクの黒（style.css の .is-header-type--light .p-drawer-menu a）にしない */
.t-drawer.p-drawer-menu a.t-btn { color: var(--key-text); }
.t-drawer.p-drawer-menu a.t-btn.is-pri { color: var(--on-key); }
.admin-bar .t-drawer.p-drawer-menu { top: 46px; height: calc(100% - 46px); }
@media (min-width: 783px) { .admin-bar .t-drawer.p-drawer-menu { top: 32px; height: calc(100% - 32px); } }
.t-drawer__hd { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 60px; padding: 0 8px 0 20px; background: #fff; border-bottom: 1px solid var(--line); }
.t-drawer__hd .t-logo { --t-logo-size-sp: 18px; }
/* 閉じる：TCDテーマと同じ2本線の × */
.t-drawer__close { position: relative; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; flex: none; }
.t-drawer__close span { position: absolute; left: 50%; top: 50%; width: 22px; height: 2px; margin: -1px 0 0 -11px; border-radius: 1px; background: var(--ink); transform: rotate(45deg); transition: transform .3s ease .15s; }
.t-drawer__close span:last-child { transform: rotate(-45deg); }
html:not(.show-drawer) .t-drawer__close span { transform: rotate(0); }
.t-drawer__close:hover, .t-drawer__close:focus-visible { background: var(--hover-bg); }
.t-drawer__me { display: grid; gap: 10px; padding: 18px 20px 6px; }
.t-drawer__user { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-l); color: var(--ink); text-decoration: none; }
.t-drawer__user:hover { border-color: var(--key); }
.t-drawer__user img { width: 44px; height: 44px; border-radius: 50%; flex: none; }
.t-drawer__user span { flex: 1; min-width: 0; }
.t-drawer__user b { display: block; font-size: 15px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.t-drawer__user small { font-size: 12px; color: var(--sub); }
.t-drawer__user > .t-ic { color: var(--sub); }
.t-drawer__sub { display: flex; align-items: center; gap: 8px; padding: 6px 4px; font-size: 14px; font-weight: 600; color: var(--key-text) !important; text-decoration: none; }
.t-drawer__auth { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.t-drawer__search { margin: 12px 20px 4px; height: 44px; }
.t-drawer__nav { margin-top: 10px; }
.t-drawer .p-drawer-menu__nav { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.t-drawer .p-drawer-menu__nav li { margin: 0; }
.t-drawer .p-drawer-menu__nav a { display: flex; align-items: center; justify-content: flex-start; gap: 10px; height: 52px; padding: 0 20px; border-bottom: 1px solid var(--line); border-top: 0 !important; color: var(--ink) !important; font-size: 15px; text-decoration: none; background: #fff; }
.t-drawer .p-drawer-menu__nav a .t-ic { color: var(--key-text); }
.t-drawer .p-drawer-menu__nav a:hover { background: var(--hover-bg); }
.t-drawer .p-drawer-menu__nav .sub-menu { background: var(--sand); }
.t-drawer .p-drawer-menu__nav .sub-menu a { padding-left: 34px; font-size: 14px; background: var(--sand); color: var(--ink) !important; }
.t-drawer .p-drawer-menu-toggle-button { display: flex; align-items: center; justify-content: center; margin-left: auto; }
.t-drawer .p-drawer-menu-toggle-button__icon:before, .t-drawer .p-drawer-menu-toggle-button__icon:after { background: var(--sub); }
.t-drawer__more { display: grid; padding: 8px 20px; }
.t-drawer__link, .t-drawer__more .t-nearme { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0; font-size: 14px; color: var(--key-text); font-weight: 600; text-decoration: none; }
.t-drawer__link:hover, .t-drawer__more .t-nearme:hover { text-decoration: underline; text-underline-offset: 3px; }
.t-drawer__sns { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; padding: 0 20px; list-style: none; }
.t-drawer__sns .c-sns-icons__item { margin: 0 !important; }
.t-drawer__sns a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink) !important; font-size: 16px; text-decoration: none; }
.t-drawer__sns a:hover { border-color: var(--key); color: var(--key-text) !important; }

/* ========== メガメニュー（PC。TCD：全幅のグレー帯、写真は角丸なし、文字は写真の下に中央寄せ） ========== */
.t-gnav__tg, .t-mega { display: none; }
@media (min-width: 1200px) {
	.t-gnav li.has-mega, .t-gnav li.has-drop { display: flex; align-items: center; gap: 4px; }
	.t-gnav li.has-mega { position: static; }
	/* 矢印の右の見えない余白（ボタンの4px＋矢印の絵の3px）を外へ出し、次の項目までの見た目の間隔をほかの項目と同じに（押せる範囲は20pxのまま） */
	.t-gnav__tg { display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: -7px; padding: 0; border: 0; background: none; color: var(--sub); cursor: pointer; }
	.t-gnav__tg .t-ic { width: 12px; height: 12px; transform: rotate(90deg); transition: transform .2s; }
	.t-gnav__tg:hover, .t-gnav__tg:focus-visible { color: var(--ink); }
	.t-gnav li.is-open > .t-gnav__tg .t-ic { transform: rotate(-90deg); }
	.t-gnav li.is-open > a { color: var(--key-text); }
	.t-gnav li.has-mega > a, .t-gnav li.has-drop > a { position: relative; }
	.t-gnav > ul > li.has-drop { position: relative; }
	.t-gnav > ul > li > a { align-self: stretch; display: flex; align-items: center; padding: 0; position: relative; }
	.t-gnav > ul > li.is-open > a::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: var(--key); }
	.t-mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 90; background: var(--t-mega-bg, var(--t-mega-gray, #f0f0f0)); color: var(--t-mega-fg, var(--ink)); padding: 40px 0; max-height: calc(100vh - 120px); overflow: auto; }
	.t-mega:not([hidden]) { display: block; animation: t-mega-in .18s ease-out; }
	.t-mega ul { display: grid; list-style: none; margin: 0; padding: 0; font-size: 14px; }
	.t-mega li { margin: 0; }
	.t-mega a { padding: 0; color: inherit; }

	/* A：任意の項目（写真＋見出し＋説明） */
	.t-mega__a { grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: 30px !important; }
	.t-mega__a a, .t-mega__a span:not(.t-photo) { display: grid; gap: 6px; color: inherit; text-decoration: none; text-align: center; }
	.t-mega__a .t-photo { aspect-ratio: 580 / 180; border-radius: 0; margin-bottom: 10px; }
	.t-mega__a b { font-size: 15px; font-weight: 600; }
	.t-mega__a a:hover b { color: var(--t-mega-hl, var(--key-text)); }
	.t-mega__a small { font-size: 13px; line-height: 1.8; opacity: .8; }

	/* B：ブログ記事 */
	.t-mega__b { position: relative; }
	.t-mega__rail { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 90px) / 4); gap: 30px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
	.t-mega__rail::-webkit-scrollbar { display: none; }
	/* 画像 → カテゴリー 16px → タイトル 12px → 日付 8px（ブログ一覧のカードと同じ組み方） */
	.t-mega .t-mega__post { display: flex; flex-direction: column; align-items: flex-start; scroll-snap-align: start; color: inherit !important; text-decoration: none; }
	.t-mega__post .t-photo { align-self: stretch; aspect-ratio: 16 / 10; border-radius: 0; }
	.t-mega .t-mega__post .t-feat__cat { margin: 16px 0 0; padding: 6px 10px; font-size: 12px; line-height: 1; }
	.t-mega__post b { margin-top: 12px; font-size: 15px; font-weight: 600; line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.t-mega__post time { margin-top: 8px; font-size: 12px; line-height: 1; color: #888; }
	.t-mega__post:hover b { color: var(--t-mega-hl, var(--key-text)); }
	.t-mega__nav { position: absolute; top: calc(((100% - 90px) / 4) * .31); width: 40px; height: 40px; border: 0; background: none; display: grid; place-items: center; cursor: pointer; color: inherit; }
	.t-mega__nav .t-ic { width: 20px; height: 20px; }
	.t-mega__nav.is-prev { left: -50px; }
	.t-mega__nav.is-prev .t-ic { transform: scaleX(-1); }
	.t-mega__nav.is-next { right: -50px; }
	/* 画面の端に余白が足りない幅では、送りのボタンが画面からはみ出さないよう記事の列を内側に寄せる */
	@media (max-width: 1399px) { .t-mega.is-posts > .t-wrap { padding-inline: 60px; } }
	.t-mega__more { margin: 36px 0 0; text-align: center; font-size: 14px; }
	.t-mega__more a { display: inline-flex; align-items: center; gap: 4px; color: inherit; text-decoration: none; }
	.t-mega__more a:hover { color: var(--t-mega-hl, var(--key-text)); }

	/* エリア：地方ごとの白い箱 */
	.t-mega__area { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; }
	.t-mega__rg { background: #fff; color: var(--ink); padding: 20px 24px 16px; }
	.t-mega__rgname { display: block; font-weight: 600; font-size: 15px; color: var(--ink) !important; text-decoration: none; padding: 0 0 10px !important; margin-bottom: 6px; border-bottom: 1px solid #e6e6e6; }
	.t-mega__rgname:hover { color: var(--key-text) !important; }
	.t-mega__rg ul { gap: 0; }
	.t-mega__rg li a { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0 !important; color: var(--ink); text-decoration: none; font-size: 14px; }
	.t-mega__rg li a:hover { color: var(--key-text); }
	.t-mega__rg small { color: var(--sub); font: 12px var(--en); }
	.t-mega__foot { display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 30px; }
	.t-mega__foot a, .t-mega__foot .t-nearme { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 240px; height: 50px; padding: 0 24px; border: 1px solid currentColor; border-radius: 0; background: none; color: inherit; text-decoration: none; font-size: 14px; font-weight: 400; cursor: pointer; }
	.t-mega__foot a:hover, .t-mega__foot .t-nearme:hover { background: var(--t-mega-hlbg, var(--key)); border-color: var(--t-mega-hlbg, var(--key)); color: var(--on-key); }

	/* ジャンル：写真のタイル、名前と件数は写真の下に中央寄せ */
	.t-mega__genre { grid-template-columns: repeat(var(--cols, 5), minmax(0, 1fr)); gap: 30px 20px; }
	.t-mega__genre a { display: grid; gap: 12px; color: inherit; text-decoration: none; text-align: center; }
	.t-mega__genre .t-photo { width: 100%; aspect-ratio: 16 / 10; height: auto; border-radius: 0; }
	.t-mega__genre .t-photo .t-ic { width: 34px; height: 34px; }
	.t-mega__genre b { display: block; font-size: 15px; font-weight: 600; line-height: 1.5; }
	.t-mega__genre small { display: block; font: 12px var(--en); opacity: .7; margin-top: 2px; }
	.t-mega__genre a:hover b { color: var(--t-mega-hl, var(--key-text)); }
}
@keyframes t-mega-in { from { opacity: 0; transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .t-mega:not([hidden]) { animation: none; } }

/* ========== 地図 ========== */
.t-map { position: relative; z-index: 0; width: 100%; background: #e9ece4; border-radius: var(--r-l); overflow: hidden; }
.t-map .leaflet-control-attribution { font-size: 10px; }
/* Googleマップは、Leaflet の地図の下に敷く */
.t-map__google { position: absolute; inset: 0; z-index: 0; }
.t-smap { margin: 0 0 20px; }
.t-smap .t-map { height: 260px; }
@media (min-width: 768px) { .t-smap .t-map { height: 340px; } }
.t-smap .t-small { margin: 6px 0 0; }
/* ピン（星の平均点つき） */
.t-pinwrap { background: none; border: 0; }
.t-pin { position: absolute; left: 0; top: 0; transform: translate(-50%, calc(-100% - 6px)); display: inline-flex; align-items: center; height: 28px; padding: 0 9px; border-radius: 999px; background: #fff; color: var(--ink); border: 1px solid rgba(0, 0, 0, .12); font: 700 12px/1 var(--en); white-space: nowrap; box-shadow: 0 2px 6px rgba(0, 0, 0, .18); cursor: pointer; transition: transform .15s, background .15s; }
.t-pin::after { content: ""; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); border: 6px solid transparent; border-bottom: 0; border-top-color: #fff; filter: drop-shadow(0 1px 0 rgba(0, 0, 0, .12)); }
.t-pin.is-paid { border-color: var(--key); }
.t-pin.is-dot { width: 18px; height: 18px; padding: 0; }
.t-pin.is-on, .t-pin:hover { background: var(--ink); color: #fff; transform: translate(-50%, calc(-100% - 6px)) scale(1.08); z-index: 2; }
.t-pin.is-on::after, .t-pin:hover::after { border-top-color: var(--ink); }
.t-pin.is-main { background: var(--key); color: var(--on-key); border-color: var(--key); font: 600 12px/1 var(--jp, inherit); max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.t-pin.is-main::after { border-top-color: var(--key); }
.t-pin.is-small { height: 24px; padding: 0 7px; font-size: 11px; opacity: .92; }
/* 一覧の番号のピン（四角、しっぽなし） */
.t-pin.is-no { justify-content: center; min-width: 30px; height: 30px; padding: 0 8px; border: 0; font: 400 13px/1 var(--en); transform: translate(-50%, -100%); }
.t-pin.is-no::after { content: none; }
.t-pin.is-no.is-on, .t-pin.is-no:hover { background: var(--key); color: var(--on-key); transform: translate(-50%, -100%) scale(1.15); }
/* 吹き出しのカード */
.t-mappop .leaflet-popup-content-wrapper { padding: 0; border-radius: var(--r-l); overflow: hidden; }
.t-mappop .leaflet-popup-content { margin: 0; width: 260px !important; }
.t-mapcard { display: grid; grid-template-columns: 76px 1fr; gap: 10px; padding: 8px; color: var(--ink) !important; text-decoration: none; background: #fff; border-radius: var(--r-l); }
.t-mapcard .t-photo { height: 76px; border-radius: var(--r-s); }
.t-mapcard__b { min-width: 0; display: grid; align-content: center; gap: 2px; }
.t-mapcard__b b { font-size: 14px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.t-mapcard__b .t-rating b { font-size: 13px; color: var(--ink); }
.t-mapcard__b small { font-size: 11px; color: var(--sub); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 一覧＋地図 */
.t-listmap__map { display: none; }
.t-mapfab { display: none; }
.t-listmap.has-map .t-mapfab { position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 30; display: inline-flex; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
.t-listmap.is-map-open .t-listmap__map { position: fixed; inset: 0; z-index: 1000; display: block; background: #fff; }
.t-listmap.is-map-open .t-map { position: absolute; inset: 0; border-radius: 0; }
.t-listmap.is-map-open .t-mapfab { display: none; }
.t-listmap__bar { position: absolute; top: calc(12px + env(safe-area-inset-top, 0px)); left: 12px; z-index: 500; }
.t-listmap__bar .t-btn { background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .2); }
.t-map__again { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 500; background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .2); }
.t-listmap.is-map-open .t-map__again { top: calc(60px + env(safe-area-inset-top, 0px)); }
.t-mapcards { position: absolute; left: 0; right: 0; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 500; display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 16px; scrollbar-width: none; }
.t-mapcards .t-mapcard { flex: 0 0 82%; max-width: 340px; scroll-snap-align: center; box-shadow: 0 4px 16px rgba(0, 0, 0, .18); }
.t-mapcards__none { margin: 0 auto; padding: 10px 14px; background: #fff; border-radius: var(--r-s); font-size: 13px; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
html.t-noscroll, html.t-noscroll body { overflow: hidden; }
.admin-bar .t-listmap.is-map-open .t-listmap__map { top: 46px; }
@media (min-width: 783px) { .admin-bar .t-listmap.is-map-open .t-listmap__map { top: 32px; } }
.t-here { width: 16px; height: 16px; border-radius: 50%; background: #2a7de1; border: 3px solid #fff; box-shadow: 0 0 0 6px rgba(42, 125, 225, .25); }
/* PC：一覧と地図を同じ grid に並べる（列の名前 full・list・map はデザインごとに決める。地図を隠すと一覧が map の列まで広がる） */
@media (min-width: 1024px) {
	.t-list { display: grid; grid-template-rows: auto auto auto 1fr; }
	.t-list__body, .t-listmap { display: contents; }
	.t-list > .t-ahead { grid-row: 1; grid-column: full; }
	.t-list__filters { grid-row: 2; grid-column: full; }
	.t-lbar { flex-wrap: wrap; grid-row: 3; grid-column: list-start / map-end; }
	.t-listmap__list, .t-list__body > .t-empty { grid-row: 4; grid-column: list-start / map-end; }
	:where(.t-list.has-map:not(.is-map-off)) :is(.t-lbar, .t-listmap__list) { grid-column: list; }
	.t-list.has-map:not(.is-map-off) .t-listmap__map { display: block; grid-column: map; position: sticky; z-index: 1; }
	.t-listmap__map .t-map { height: 100%; border-radius: 0; }
	.t-listmap__map .t-map__again .t-ic { display: none; }
	.t-lconds { flex-wrap: wrap; overflow: visible; }
	.t-lconds__lbl { display: block; }
	.t-lbar__sort { display: flex; white-space: nowrap; }
	.t-lbar__sel { display: none; }
	.t-lbar__map { display: inline-flex; }
	.t-lrow__no, .t-lrow__ex { display: block; }
	.t-listmap.has-map .t-mapfab, .t-listmap__bar, .t-mapcards { display: none; }
}
/* 現在地 */
.t-nearme { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: inherit; cursor: pointer; font-size: 14px; }
.t-nearme.is-busy { opacity: .6; }
.t-nearme.is-hero { margin-top: 14px; height: 38px; padding: 0 16px; font-size: 13px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--ink); font-weight: 600; box-shadow: 0 2px 10px rgba(0, 0, 0, .12); }
.t-nearme.is-hero:hover { background: #fff; color: var(--key-text); }
.t-nearme.t-fchip { font-size: 13px; }
.t-dist { display: inline-flex; align-items: center; gap: 2px; color: var(--key-ink); font-weight: 700; }
.t-dist .t-ic { width: 13px; height: 13px; }

/* ========== SNSログイン ========== */
.t-sso { display: grid; gap: 10px; margin: 20px 0 0; }
.t-sso__btn { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 52px; border-radius: 999px; border: 1px solid #cfc9c0; background: #fff; color: #1f1f1f; font-size: 15px; font-weight: 600; text-decoration: none; }
.t-sso__btn svg { position: absolute; left: 20px; width: 22px; height: 22px; }
.t-sso__btn:hover { background: #f7f7f7; }
.t-sso__btn.is-line { background: #06c755; border-color: #06c755; color: #fff; }
.t-sso__btn.is-line:hover { background: #05b34c; }
.t-sso__btn.is-apple { background: #000; border-color: #000; color: #fff; }
.t-sso__btn.is-apple:hover { background: #222; }
.t-sso__note { margin: 10px 0 0; font-size: 12px; line-height: 1.7; color: var(--sub); text-align: center; }
.t-or { display: flex; align-items: center; gap: 12px; margin: 22px 0 6px; font-size: 12px; color: var(--sub); }
.t-or::before, .t-or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.t-auth h1 + .t-sso { margin-top: 22px; }
.t-or + .t-form { margin-top: 14px; }

/* ========== 口コミの通報 ========== */
.t-rvbtn { display: inline-flex; align-items: center; gap: 4px; height: 34px; padding: 0 8px; border: 0; background: none; color: var(--sub); font-size: 12px; cursor: pointer; border-radius: 999px; }
.t-rvbtn .t-ic { width: 14px; height: 14px; }
.t-rvbtn:hover:not(:disabled) { background: var(--hover-bg); color: var(--ink); }
.t-rvbtn:disabled { cursor: default; opacity: .7; }
.t-rv__foot .t-rvbtn { margin-left: auto; }
.t-report__lead { margin: 12px 0 14px; font-size: 13px; line-height: 1.8; color: #444; }
.t-report__reasons { border: 0; margin: 0 0 16px; padding: 0; display: grid; border-top: 1px solid var(--line); }
.t-report__reasons label { display: flex; align-items: center; gap: 10px; min-height: 48px; border-bottom: 1px solid var(--line); font-size: 14px; cursor: pointer; }
.t-report__reasons input { width: 20px; height: 20px; accent-color: var(--key); flex: none; margin: 0; }
.t-opt { display: inline-block; margin-left: 6px; padding: 2px 6px; border-radius: 3px; background: #eee; color: var(--sub); font-size: 11px; font-weight: 400; line-height: 1.4; vertical-align: 1px; }
#t-report .t-err { margin-top: 10px; }

/* ========== 店舗のクーポン・お知らせ ========== */
.t-coupons { display: grid; gap: 12px; margin: 0 0 10px; }
.t-coupon { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 12px; align-items: center; padding: 12px 14px; border: 1.5px dashed var(--key); border-radius: var(--r-m); background: var(--key-soft); }
.t-coupon__off { font: 600 26px/1 var(--en); color: var(--key-ink); white-space: nowrap; max-width: 7em; overflow-wrap: anywhere; white-space: normal; }
.t-coupon__b { min-width: 0; }
.t-coupon__b b { display: block; font-size: 14px; line-height: 1.5; }
.t-coupon__b small { display: block; margin-top: 2px; font-size: 11px; line-height: 1.5; color: var(--sub); }
.t-coupon__acts { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; }
.t-coupon .t-btn { height: 36px; padding: 0 14px; font-size: 13px; background: #fff; }
.t-coupon .t-btn.is-pri { background: var(--key); border-color: var(--key); color: var(--on-key); }
.t-coupon .t-btn .is-on { display: none; }
.t-coupon .t-btn[aria-pressed="true"] .is-on { display: inline-flex; align-items: center; gap: 4px; }
.t-coupon .t-btn[aria-pressed="true"] .is-off { display: none; }
.t-coupon .t-btn[aria-pressed="true"] { background: var(--key); border-color: var(--key); color: var(--on-key); }
@media (min-width: 768px) {
	.t-coupon { grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; padding: 20px 24px; border-width: 2px; }
	.t-coupon .t-btn { grid-column: auto; justify-self: end; }
	.t-coupon__off { font-size: 34px; }
	.t-coupon__b b { font-size: 16px; }
	.t-coupon__b small { font-size: 12px; line-height: 1.6; margin-top: 4px; }
}
.t-snews { border-top: 1px solid var(--line); }
.t-snews__item { border-bottom: 1px solid var(--line); }
.t-snews__item summary { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 14px; align-items: baseline; padding: 14px 0; cursor: pointer; list-style: none; }
.t-snews__item summary::-webkit-details-marker { display: none; }
.t-snews__item time { font: 12px var(--en); color: var(--sub); }
.t-snews__item summary b { font-size: 15px; line-height: 1.6; }
.t-snews__item summary .t-ic { color: var(--sub); transform: rotate(90deg); transition: transform .2s; align-self: center; }
.t-snews__item[open] summary .t-ic { transform: rotate(-90deg); }
@media (max-width: 599px) { .t-snews__item summary { grid-template-columns: 1fr auto; } .t-snews__item time { grid-column: 1 / -1; } }
.t-snews__body { padding: 0 0 16px; font-size: 14px; line-height: 2; color: #444; }
.t-snews__body p { margin: 0 0 8px; }

/* ========== ランキング ========== */
.t-reviews { padding-bottom: calc(var(--sec) * .7); }
.t-seg { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; margin: 4px 0 0; padding: 4px; background: var(--sand); border-radius: 999px; width: max-content; max-width: 100%; }
.t-seg a { flex: none; padding: 6px 16px; border-radius: 999px; font-size: 13px; color: var(--sub); text-decoration: none; white-space: nowrap; }
.t-seg a[aria-current="true"] { background: #fff; color: var(--ink); font-weight: 600; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
.t-seg a:not([aria-current="true"]):hover { color: var(--ink); background: rgba(255, 255, 255, .6); }
/* ランキングの見出し（名前・集計の条件・地域と並び順）と順位の行。寸法はデザインごと（A は下の「デザインA：ランキング」） */
.t-rkhead { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.t-rkhead h2, .t-rkhead__cond { margin: 0; }
.t-rkhead__ctl { display: flex; gap: 8px; }
.t-rkhead__ctl select { max-width: 48vw; color: var(--ink); }
.t-rkl { list-style: none; margin: 0; padding: 0; }
.t-rkl__item { margin: 0; }
.t-rkl__item > a { position: relative; display: grid; color: var(--ink); text-decoration: none; }
.t-rkl__item > a:hover h2 { color: var(--key-text); }
.t-rkl__no { display: grid; place-items: center; color: #fff; }
.t-rkl__item.is-1 .t-rkl__no { background: var(--stopby-review-ranking1-color, #d4a53a); }
.t-rkl__item.is-2 .t-rkl__no { background: var(--stopby-review-ranking2-color, #a7a9ac); }
.t-rkl__item.is-3 .t-rkl__no { background: var(--stopby-review-ranking3-color, #b07a4a); }
.t-rkl__no.is-pr { background: #fff; color: var(--sub); border: 1px solid var(--line); font-size: 11px; }
.t-rkl__item.is-pr > a { background: var(--sand); }
.t-rkl__b { display: block; min-width: 0; }
.t-rkl__tags { display: flex; flex-wrap: wrap; }
.t-rkl h2 { margin: 0; }
.t-rkl__score { display: flex; align-items: center; flex-wrap: wrap; }
.t-rkl__ex { display: block; }
.t-rkl__note { margin: 18px 0 0; font-size: 12px; color: var(--sub); line-height: 1.8; }
.t-rkl__free { margin-top: 40px; }

/* ========== 口コミ一覧（並べ方の土台。色・大きさ・余白はデザインごと） ========== */
.t-rvls { display: grid; }
.t-rvl { display: flex; flex-direction: column; min-width: 0; }
.t-rvl__store { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; color: var(--ink); text-decoration: none; }
.t-rvl__store .t-photo .t-ic { width: 20px; height: 20px; }
.t-rvl__sn b, .t-rvl__sn small { display: block; }
.t-rvl__sn b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.t-rvl__store:hover .t-rvl__sn b { color: var(--key-text); }
.t-rvl__b { display: flex; flex-direction: column; flex: 1; }
.t-rvl__who { display: flex; align-items: center; gap: 10px; line-height: 1; }
.t-rvl__who time { margin-left: auto; }
.t-rvl__score { display: flex; align-items: center; gap: 6px; margin: 0; line-height: 1; }
.t-rvl h3 { margin: 0; }
.t-rvl h3 a { color: inherit; text-decoration: none; }
.t-rvl h3 a:hover { text-decoration: underline; }
.t-rvl__text { display: -webkit-box; margin: 0; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.t-rvl__photos { display: flex; }
.t-rvl__photos .t-photo { flex: none; }
.t-rvl__foot { display: flex; align-items: center; margin-top: auto; line-height: 1; }
.t-rvl__foot > span { display: inline-flex; align-items: center; gap: 4px; }
.t-rvl__foot .t-ic { width: 14px; height: 14px; }
.t-rvl__foot a { margin-left: auto; color: var(--ink); text-decoration: none; }
.t-rvl__foot a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ========== 一覧の見出しの写真（並べ方はデザインごと） ========== */
.t-ahead.is-image { position: relative; }
.t-ahead__bg img { display: block; width: 100%; height: 100%; object-fit: cover; }
.t-ahead__desc { margin: 0; }

@media (prefers-reduced-motion: reduce) {
	.t-site *, .t-site *::before, .t-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* =====================================================================
 * デザインA：TCDスタンダード（標準。B・C は css/skin-b.css・skin-c.css で上書きする）
 * 直近のTCDテーマの値：本文16px・行間2.4、見出し欧文48px＋和文16px（中央）、
 * セクション上下120px、見出しから中身まで70px、写真は角丸なし、ボタン 300×70 の丸型
 * ===================================================================== */
.t-site { --r-photo: 0px; --t-head-align: center; }

/* ヘッダー：全幅（左右40px）、ロゴ・メニュー中央・右にアイコン。高さは下の線を含めて 60／80px */
.t-skin-a .t-header__in { height: 59px; }
@media (min-width: 1024px) {
	.t-skin-a .t-header__in { height: 79px; }
	.t-skin-a .t-header > .t-wrap { max-width: none; padding-inline: 40px; }
	.t-skin-a .t-header .t-logo a { gap: 10px; }
}
@media (min-width: 1200px) {
	.t-skin-a .t-gnav { flex: 1; display: flex; justify-content: center; }
	/* 下層のある項目に矢印を出さない（見本どおり。どの項目も同じ並び）。下層はマウスを乗せると開き、キーボードでは開閉ボタンを選んだときだけ矢印が出る */
	.t-skin-a .t-gnav__tg:not(:focus-visible) { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip-path: inset(50%); }
	.t-skin-a .t-header__r { margin-left: 0; }
}

/* ヒーロー：全幅、文字と検索は中央 */
.t-skin-a .t-hero { margin: 0; border-radius: 0; align-items: center; text-align: center; }
@media (min-width: 1024px) { .t-skin-a .t-hero { margin: 0; min-height: 760px; } }
.t-skin-a .t-hero__in { padding: 80px var(--gutter); max-width: calc(1100px + var(--gutter) * 2); }
.t-skin-a .t-hero__eyebrow { font-size: 14px; }
@media (min-width: 1024px) { .t-skin-a .t-hero__eyebrow { font-size: 16px; } }
.t-skin-a .t-hero h1, .t-skin-a .t-hero .t-hero__title { margin: 16px 0 0; line-height: 1.6; letter-spacing: .04em; }
@media (min-width: 1024px) { .t-skin-a .t-hero .t-hero__title { font-size: var(--t-hero-size, 46px); } }
.t-skin-a .t-hero__count { justify-content: center; margin: 20px 0 36px; }
@media (min-width: 1024px) {
	.t-skin-a .t-hero__count { margin-bottom: 48px; font-size: 16px; line-height: 1.6; }
	.t-skin-a .t-hero__count b { font-size: 26px; }
}
.t-skin-a .t-sbox { border-radius: 0; padding: 0; gap: 0; box-shadow: 0 10px 30px rgba(0, 0, 0, .15); text-align: left; }
.t-skin-a .t-sbox input, .t-skin-a .t-sbox select { border-radius: 0; background-color: #fff; height: 60px; border-bottom: 1px solid #e5e5e5; }
.t-skin-a .t-sbox button { border-radius: 0; height: 60px; }
@media (min-width: 900px) {
	.t-skin-a .t-sbox { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) 180px; }
	.t-skin-a .t-sbox.is-two { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr) 180px; }
	.t-site.t-skin-a .t-sbox.is-one { grid-template-columns: minmax(0, 1fr) 180px; }
	.t-skin-a .t-sbox input, .t-skin-a .t-sbox select { height: 70px; border-bottom: 0; border-right: 1px solid #ddd; padding: 0 24px; font-size: 15px; }
	.t-skin-a .t-sbox button { height: 70px; font-size: 16px; font-weight: 400; }
}
.t-skin-a .t-nearme.is-hero { margin-top: 20px; }

/* お知らせのティッカー（REHUB）：60px・中央 */
.t-skin-a .p-news-ticker { border-bottom: 1px solid #eee; background: #fff; }
.t-skin-a .p-news-ticker__item { justify-content: center; font-size: 14px; }
.t-skin-a .p-news-ticker__date { color: #999; font-weight: 400; }
.t-skin-a .p-news-ticker__title { margin-left: 30px; font-weight: 400; }

/* セクションの見出し：中央、欧文は大文字 48px（スマホ 30px）、和文 16px */
.t-skin-a .t-head { flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; gap: 24px; }
.t-skin-a .t-sec.is-left .t-head { align-items: flex-start; text-align: left; }
.t-skin-a .t-sec .t-head .t-en { font-weight: 600; text-transform: uppercase; letter-spacing: .04em; line-height: 1.2; }
.t-skin-a .t-sec .t-en i { color: var(--t-accent, inherit); }
.t-skin-a .t-sec .t-head .t-ja { font-weight: 400; margin-top: 14px; color: var(--t-head, var(--t-sub-def, var(--ink))); }
.t-skin-a .t-head p { max-width: 720px; }

/* 一覧を見るボタン：枠線の丸いボタン（文字の色・枠） */
.t-skin-a .t-sec .t-sec__more .t-sec__btn { border-radius: 70px; border-color: var(--t-btn-bg, var(--ink)); background: var(--t-btn-bg, transparent); color: var(--t-btn-fg, var(--ink)); font-weight: 400; }
.t-skin-a .t-sec .t-sec__more .t-sec__btn:hover { background: var(--t-btn-bg, var(--ink)); color: var(--t-btn-fg, #fff); filter: none; opacity: .85; }

/* 日本地図：四角いタイル、右の欄は枠線の箱 */
.t-skin-a .t-tiles button { border-radius: 0; }
@media (min-width: 900px) { .t-skin-a .t-jmap { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 60px; } }
.t-skin-a .t-prefpanel { border-radius: 0; border-color: #ddd; padding: 30px; }
@media (min-width: 1024px) { .t-skin-a .t-prefpanel { padding: 40px; } }
.t-skin-a .t-prefpanel__rg { font-size: 14px; line-height: 1.6; color: #888; }
.t-skin-a .t-prefpanel h3 { margin: 4px 0 0; font-size: 28px; font-weight: 600; line-height: 1.5; }
@media (min-width: 1024px) { .t-skin-a .t-prefpanel h3 { font-size: 32px; } }
.t-skin-a .t-prefpanel__num { margin: 6px 0 24px; font-size: 14px; line-height: 1.6; color: #888; }
.t-skin-a .t-prefpanel__num b { font-size: 24px; }
.t-skin-a .t-prefpanel ul { grid-template-columns: 1fr; gap: 0; border-top: 1px solid #eee; margin-bottom: 30px; }
.t-skin-a .t-prefpanel li a { border: 0; border-bottom: 1px solid #eee; border-radius: 0; padding: 16px 0; font-size: 15px; line-height: 1; }
.t-skin-a .t-prefpanel li a:hover { color: var(--key-text); }
.t-skin-a .t-prefpanel .t-btn { border-radius: 0; height: 60px; font-weight: 400; }

/* ジャンル：同じ大きさの写真、名前と件数は写真の下に中央寄せ */
.t-skin-a .t-genres { grid-auto-rows: auto; gap: 30px 15px; }
@media (min-width: 900px) { .t-skin-a .t-genres { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 30px; } }
.t-skin-a .t-genres a, .t-skin-a .t-genres a:first-child { grid-column: auto; grid-row: auto; border-radius: 0; overflow: visible; color: var(--ink); text-align: center; }
.t-skin-a .t-genres .t-photo { position: relative; inset: auto; aspect-ratio: 3 / 2; border-radius: 0; }
.t-skin-a .t-genres__lbl, .t-skin-a .t-genres a:first-child .t-genres__lbl { position: static; display: block; margin-top: 14px; text-shadow: none; }
.t-skin-a .t-genres__lbl b, .t-skin-a .t-genres a:first-child .t-genres__lbl b { font-size: 16px; font-weight: 600; line-height: 1.5; }
.t-skin-a .t-genres__lbl small { display: block; color: var(--sub); font-size: 13px; }
.t-skin-a .t-conds { justify-content: center; margin-top: 50px; }
.t-skin-a .t-conds a { border-radius: 0; border-color: #ddd; background: #fff; color: var(--ink); font-weight: 400; height: 44px; padding: 0 24px; }
.t-skin-a .t-conds a:hover { border-color: var(--key); color: var(--key-text); background: #fff; }

/* 新着の口コミ：PCは4列のカード（スマホは横スクロール） */
@media (min-width: 1024px) {
	.t-skin-a .t-fp-review_comments .t-rail { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-columns: auto; overflow: visible; max-width: calc(1100px + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); box-sizing: border-box; }
}
.t-skin-a .t-rcard { border-radius: 0; border-color: #e5e5e5; }
.t-skin-a .t-rcard__b { padding: 22px 24px 24px; }
.t-skin-a .t-rcard h3 { font-size: 16px; font-weight: 600; }
.t-skin-a .t-rcard p { font-size: 14px; line-height: 2; color: #555; }
.t-skin-a .t-rcard__store { border-top-color: #eee; color: var(--key-text); font-weight: 400; }

/* ランキング：中央のタブ（下線）、四角い順位 */
.t-skin-a .t-rtabs { justify-content: center; gap: 0; border-bottom: 1px solid #ddd; margin-bottom: 50px; }
.t-skin-a .t-rtabs button { border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: none; height: 56px; padding: 0 24px; font-size: 15px; color: var(--sub); margin-bottom: -1px; }
.t-skin-a .t-rtabs button[aria-selected="true"] { background: none; color: var(--ink); border-bottom-color: var(--key); }
@media (min-width: 1024px) { .t-skin-a .t-rank { gap: 40px; } }
.t-skin-a .t-rk { border: 0; border-radius: 0; background: none; }
.t-skin-a .t-rk .t-photo { height: auto; aspect-ratio: 3 / 2; }
.t-skin-a .t-rk__no { left: 0; top: 0; width: 56px; height: 56px; border-radius: 0; box-shadow: none; font-size: 22px; background: var(--ink); color: #fff; }
.t-skin-a .t-rk__b { padding: 20px 0 0; font-size: 14px; }
.t-skin-a .t-rk h3 { font-size: 18px; font-weight: 600; line-height: 1.6; }
.t-skin-a .t-rk small { font-size: 13px; }

/* 店舗の方へ：全幅の帯、中央の見出し、3列のカード */
.t-skin-a .t-fp-owner.t-sec { padding-block: 0; }
.t-skin-a .t-owner { --t-owner-on: #fff; margin: 0; border-radius: 0; padding: 80px 0; text-align: center; background: var(--t-owner-bg, #3f4a45); }
@media (min-width: 1024px) { .t-skin-a .t-owner { margin: 0; padding: 140px 0; } }
.t-skin-a .t-owner .t-sechead .t-en { font-weight: 600; text-transform: uppercase; letter-spacing: .04em; line-height: 1.2; }
.t-skin-a .t-owner .t-sechead .t-en i { color: var(--t-accent, inherit); }
.t-skin-a .t-owner .t-sechead .t-ja { font-weight: 400; margin-top: 14px; }
.t-skin-a .t-owner__lead { margin: 40px auto 0; max-width: 720px; }
.t-skin-a .t-ostack { text-align: left; margin-top: 50px; }
@media (min-width: 900px) {
	.t-skin-a .t-ostack { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin-top: 70px; }
	.t-skin-a .t-ocard { position: static; grid-template-columns: 1fr; gap: 20px; align-items: start; padding: 40px 36px; }
}
.t-skin-a .t-ocard { border-radius: 0; box-shadow: none; background: var(--t-ocard-bg, rgba(255, 255, 255, .08)); color: var(--t-ocard-fg, inherit); border: 1px solid rgba(255, 255, 255, .25); }
.t-skin-a .t-ocard__ic { width: 60px; height: 60px; border-radius: 50%; background: none; color: inherit; border: 1px solid currentColor; }
.t-skin-a .t-ocard__ic .t-ic { width: 26px; height: 26px; }
.t-skin-a .t-ocard p { opacity: .85; }
@media (min-width: 1024px) { .t-skin-a .t-ocard p { font-size: 15px; } }
.t-skin-a .t-owner__cta { justify-content: center; gap: 20px; }
@media (min-width: 1024px) { .t-skin-a .t-owner__cta { margin-top: 70px; } }
.t-skin-a .t-owner__cta .t-btn { border-radius: 70px; font-weight: 400; }
.t-skin-a .t-owner__cta .t-btn.is-pri { color: var(--t-btn-fg, var(--ink)); }

/* おすすめのお店：3列、写真 3:2、枠なし */
@media (min-width: 768px) {
	.t-skin-a .t-scards { gap: 40px 30px; }
	.t-skin-a .t-scards .t-scard { border: 0; border-radius: 0; background: none; }
	.t-skin-a .t-scards .t-scard .t-photo { height: auto; aspect-ratio: 3 / 2; }
	.t-skin-a .t-scards .t-scard__b { padding: 18px 0 0; }
	.t-skin-a .t-scards .t-scard h3 { font-size: 18px; line-height: 1.6; margin-top: 6px; }
}

/* 特集：写真 16:10、日付とカテゴリー */
.t-skin-a .t-feat .t-photo { height: auto; aspect-ratio: 16 / 10; border-radius: 0; }
.t-feat__meta { display: flex; align-items: center; gap: 14px; margin: 18px 0 10px; font-size: 13px; line-height: 1; color: var(--sub); }
.t-feat__meta .t-feat__cat { margin: 0; }
.t-skin-a .t-feat__cat { border: 0; border-radius: 0; background: #fff; color: var(--ink); padding: 6px 12px; font-size: 13px; line-height: 1; }
.t-skin-a .t-sec:not(.is-sand) .t-feat__cat { background: #f5f5f5; }
.t-skin-a .t-feat h3 { font-size: 17px; font-weight: 600; line-height: 1.8; }

/* お知らせ：PCは左に見出しとボタン、右に一覧 */
@media (min-width: 1024px) {
	.t-skin-a .t-fp-news .t-wrap { display: grid; grid-template-columns: 300px minmax(0, 1fr); grid-template-areas: "head list" "more list"; gap: 0 60px; align-items: start; }
	.t-skin-a .t-fp-news .t-head { grid-area: head; align-items: flex-start; text-align: left; margin-bottom: 40px; }
	.t-skin-a .t-fp-news .t-newslist { grid-area: list; }
	.t-skin-a .t-fp-news .t-sec__more { grid-area: more; justify-content: flex-start; margin-top: 0; }
	.t-skin-a .t-fp-news .t-sec__more .t-btn { min-width: 240px; height: 60px; font-size: 15px; }
}
.t-skin-a .t-newslist { border-top-color: #ddd; }
.t-skin-a .t-newslist li { border-bottom-color: #ddd; }
@media (min-width: 768px) { .t-skin-a .t-newslist a { grid-template-columns: 130px 1fr auto; } }

/* フッター：薄いグレー。左にロゴ・説明・SNS、右に都道府県かメニューの列、下にメニューの横並びとキーカラーのコピーライト帯 */
.t-skin-a .t-footer { background: #f5f5f5; color: var(--ink); padding: 60px 0 0; font-size: 14px; }
.t-skin-a .t-footer a { color: var(--ink); }
.t-skin-a .t-footer a:hover { color: var(--key-text); }
.t-skin-a .t-footer .t-logo, .t-skin-a .t-footer .t-logo a { color: var(--ink); }
.t-skin-a .t-footer__top { grid-template-columns: 1fr; gap: 48px; margin: 0; }
.t-skin-a .t-footer__desc { margin-top: 22px; color: #666; font-size: 14px; line-height: 2; }
/* アイコンは18px、押せる範囲は40px（アイコンの中心の間隔もデザインの40px。左端は文字にそろえる） */
.t-skin-a .t-footer__sns { gap: 0; margin: 15px 0 0 -11px; }
.t-skin-a .t-footer__sns a { width: 40px; height: 40px; border: 0; background: none; font-size: 18px; color: var(--ink) !important; }
.t-skin-a .t-footer__sns a::before { color: var(--ink); }
.t-skin-a .t-footer__sns a:hover, .t-skin-a .t-footer__sns a:focus-visible { background: none; opacity: .6; }
.t-skin-a .t-footer h4 { color: var(--ink); font-size: 14px; font-weight: 600; }
.t-skin-a .t-footer__label { margin: 0 0 30px; padding-bottom: 18px; border-bottom: 1px solid #ddd; }
.t-skin-a .t-prefs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
.t-skin-a .t-prefs div { line-height: 1.6; }
.t-skin-a .t-prefs b { margin-bottom: 14px; color: var(--ink); font-size: 14px; font-weight: 600; }
.t-skin-a .t-prefs__list { gap: 6px 14px; }
.t-skin-a .t-prefs__list a, .t-skin-a .t-fcol li a { color: #444; }
.t-skin-a .t-fcols { gap: 34px; }
.t-skin-a .t-fcol h4 { margin: 0 0 22px; }
.t-skin-a .t-fcol li { margin-bottom: 14px; }
.t-skin-a .t-fmenu { margin-top: 56px; padding: 26px 0; border-top: 1px solid #ddd; }
.t-skin-a .t-fmenu ul { justify-content: center; gap: 14px 26px; margin: 0; font-size: 13px; }
.t-skin-a .t-footer__bot { justify-content: center; border-top: 0; margin: 0 calc(50% - 50vw); padding: 0 var(--gutter); min-height: 56px; align-items: center; background: var(--key); color: var(--on-key); font-size: 12px; }
.t-skin-a .t-footer__bot a { color: #fff; }
.t-skin-a .t-footer__top + .t-footer__bot { margin-top: 56px; }
@media (min-width: 1024px) {
	.t-skin-a .t-footer { padding-top: 100px; }
	.t-skin-a .t-footer .t-wrap { max-width: calc(1150px + var(--gutter) * 2); }
	.t-skin-a .t-footer__top { grid-template-columns: 280px minmax(0, 1fr); gap: 90px; }
	.t-skin-a .t-prefs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
	.t-skin-a .t-prefs__list { gap: 10px 18px; }
	.t-skin-a .t-fcols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
	.t-skin-a .t-fcol li { margin-bottom: 18px; }
	.t-skin-a .t-fmenu, .t-skin-a .t-footer__top + .t-footer__bot { margin-top: 90px; }
	.t-skin-a .t-fmenu { padding: 32px 0; }
	.t-skin-a .t-fmenu ul { gap: 14px 40px; font-size: 14px; }
	.t-skin-a .t-footer__bot { min-height: 70px; font-size: 13px; }
}

/* ---------- デザインA：一覧（ブログ・お知らせ）：グレーの帯に英字・見出し・パンくず、正方形のタブ、3列のカード ---------- */
.t-skin-a .t-ahead { padding: 34px 0 28px; background: #f5f5f5; text-align: center; }
.t-skin-a .t-ahead__in { display: flex; flex-direction: column; align-items: center; }
.t-skin-a .t-ahead__en { order: 1; font-size: 28px; font-weight: 600; line-height: 1.2; letter-spacing: .04em; }
.t-skin-a .t-ahead__ttl { order: 2; margin: 8px 0 0; font-family: var(--t-head-ff); font-size: var(--t-head-fs, 14px); font-weight: 400; line-height: 1.6; }
.t-skin-a .t-ahead .t-crumb { display: none; order: 3; margin-top: 18px; padding: 0; font-size: 13px; line-height: 1; color: #888; }
.t-skin-a .t-ahead .t-crumb li + li::before { content: "／"; color: inherit; }
.t-skin-a .t-ahead__count, .t-skin-a .t-abar__count { display: none; }
.t-skin-a .t-arch { padding-top: 30px; padding-bottom: 80px; }
.t-skin-a .t-arch__desc { margin: 0 0 24px; font-size: 14px; line-height: 2; color: #555; }
.t-skin-a .t-atabs { display: flex; gap: 6px; margin-bottom: 28px; overflow-x: auto; scrollbar-width: none; }
.t-skin-a .t-atabs a { flex: none; display: flex; align-items: center; justify-content: center; height: 40px; padding: 0 16px; border: 1px solid #ddd; font-size: 13px; }
.t-skin-a .t-atabs a[aria-current] { border-color: #222; background: #222; color: #fff; }
.t-skin-a .t-atabs a:not([aria-current]):hover { background: var(--hover-bg); }
.t-skin-a .t-pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 15px; }
.t-skin-a .t-pcard .t-photo { aspect-ratio: 3 / 2; border-radius: 0; }
.t-skin-a .t-pcard__b { display: flex; flex-direction: column; align-items: flex-start; }
.t-skin-a .t-pcard__m { display: contents; }
.t-skin-a .t-pcard__cat { order: 1; margin-top: 10px; padding: 4px 7px; background: #f5f5f5; font-size: 11px; line-height: 1; }
.t-skin-a .t-pcard h3 { order: 2; margin-top: 8px; font-size: 14px; font-weight: 600; line-height: 1.6; }
.t-skin-a .t-pcard time { order: 3; margin-top: 8px; font-size: 11px; line-height: 1; color: #888; }
.t-skin-a .t-nrows { max-width: 900px; margin: 0 auto; border-top: 1px solid #ddd; }
.t-skin-a .t-nrow a { grid-template-columns: minmax(0, 1fr); padding: 16px 0; border-bottom: 1px solid #ddd; }
.t-skin-a .t-nrow.has-thumb a { grid-template-columns: 110px minmax(0, 1fr); grid-template-rows: auto auto; gap: 0 14px; }
.t-skin-a .t-nrow .t-photo { grid-row: 1 / span 2; aspect-ratio: 3 / 2; border-radius: 0; }
.t-skin-a .t-nrow time { align-self: end; font-size: 11px; line-height: 1; color: #888; }
.t-skin-a .t-nrow b { align-self: start; margin-top: 8px; font-size: 14px; font-weight: 600; line-height: 1.6; }
.t-skin-a .t-nrow .t-ic { display: none; }
.t-skin-a .t-pager { margin-top: 44px; }
.t-skin-a .t-pager .nav-links { gap: 8px; }
.t-skin-a .t-pager .page-numbers { width: 44px; min-width: 0; height: 44px; padding: 0; border-color: #ddd; border-radius: 0; font-size: 15px; }
.t-skin-a .t-pager .page-numbers.current { background: #222; border-color: #222; }
@media (min-width: 1024px) {
	.t-skin-a .t-ahead { padding: 60px 0 50px; }
	.t-skin-a .t-ahead__en { font-size: 40px; }
	.t-skin-a .t-ahead__ttl { margin-top: 12px; font-size: var(--t-head-fs, 16px); }
	.t-skin-a .t-ahead .t-crumb { display: block; }
	.t-skin-a .t-arch { padding-top: 60px; padding-bottom: 120px; }
	.t-skin-a .t-arch__desc { margin-bottom: 40px; font-size: 15px; line-height: 2.2; text-align: center; }
	/* 数が少なければ同じ幅、多ければ（ジャンルを増やしたときなど）横に流す */
	.t-skin-a .t-atabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(max-content, 1fr); gap: 0; margin-bottom: 50px; border: 1px solid #ddd; overflow-x: auto; }
	.t-skin-a .t-atabs a { height: 56px; padding: 0 20px; border: 0; border-left: 1px solid #ddd; font-size: 14px; white-space: nowrap; }
	.t-skin-a .t-atabs a:first-child { border-left: 0; }
	.t-skin-a .t-pcards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px 30px; }
	.t-skin-a .t-pcard__cat { margin-top: 18px; padding: 6px 10px; font-size: 12px; }
	.t-skin-a .t-pcard h3 { margin-top: 12px; font-size: 16px; line-height: 1.7; }
	.t-skin-a .t-pcard time { font-size: 13px; }
	.t-skin-a .t-nrow a { padding: 24px 0; }
	.t-skin-a .t-nrow.has-thumb a { grid-template-columns: 160px minmax(0, 1fr); gap: 0 30px; }
	.t-skin-a .t-nrow time { font-size: 13px; }
	.t-skin-a .t-nrow b { margin-top: 14px; font-size: 17px; line-height: 1.7; }
	.t-skin-a .t-pager { margin-top: 70px; }
	.t-skin-a .t-pager .nav-links { gap: 10px; }
	.t-skin-a .t-pager .page-numbers { width: 50px; height: 50px; }
}

/* ---------- デザインA：一覧の写真：写真の帯に英字・見出し・パンくず（白い文字） ---------- */
.t-skin-a .t-ahead.is-image { padding: 60px 0 54px; color: #fff; }
.t-skin-a .t-ahead.is-image .t-ahead__bg { position: absolute; inset: 0; }
.t-skin-a .t-ahead.is-image .t-ahead__bg::after { content: ""; position: absolute; inset: 0; background: var(--t-overlay, rgba(0, 0, 0, .3)); }
.t-skin-a .t-ahead.is-image .t-ahead__in > :not(.t-ahead__bg) { position: relative; }
.t-skin-a .t-ahead.is-image .t-crumb { color: rgba(255, 255, 255, .8); }
@media (min-width: 1024px) {
	.t-skin-a .t-ahead.is-image { padding: 110px 0 100px; }
}

/* ---------- デザインA：エリア・ジャンルを選ぶパネル：白い四角、四角い枠のボタン、選んだものはキーカラー ---------- */
.t-skin-a .t-sbox.is-picking-pref select[name="pref"], .t-skin-a .t-sbox.is-picking-genre select[name="genre"], .t-skin-a .t-sbox.is-picking-price select[name="price"], .t-skin-a .t-lsearch.is-picking-pref .t-lsearch__f:has(select[name="pref"]), .t-skin-a .t-lsearch.is-picking-genre .t-lsearch__f:has(select[name="genre"]), .t-skin-a .t-lsearch.is-picking-price .t-lsearch__f:has(select[name="price"]), .t-skin-a .t-lsearch__f.is-kw:has(input:focus-visible), .t-skin-a .t-sbox input:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px var(--key); }
/* デザインA：キーボードで選んだ欄の枠も、内側の2pxにそろえる */
.t-skin-a .t-sbox__pick:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px var(--key); }
.t-skin-a .t-sbp { background: #fff; box-shadow: 0 14px 36px rgba(0, 0, 0, .18); }
.t-skin-a .t-sbp.is-area .t-sbp__hd b { font-size: 16px; }
.t-skin-a .t-sbp__rg { padding-top: 6px; font-size: 16px; font-weight: 400; }
.t-skin-a .t-sbp.is-genre:not(.t-sbsheet) .t-sbp__hd { border-bottom: 1px solid #eee; }
.t-skin-a .t-sbp__row { border-top: 1px solid #eee; }
.t-skin-a .t-sbp__p { border: 1px solid #ddd; background: #fff; }
.t-skin-a .t-sbp__p[aria-pressed="true"] { border-color: var(--key); background: var(--key); color: var(--on-key); }
.t-skin-a .t-sbp__g[aria-pressed="true"] { background: var(--key-soft); }
.t-skin-a .t-sbp__gi.is-none { background: #eee; color: #888; }
.t-skin-a .t-sbsheet { border-radius: 18px 18px 0 0; }
.t-skin-a .t-sbsheet .t-sbp__ps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.t-skin-a .t-sbsheet__all { border: 1px solid #222; background: #fff; }

/* ---------- デザインA：口コミを送ったあとの知らせ：四角いボタン（閉じるは黒い枠） ---------- */
.t-skin-a .t-posted { border-radius: 18px 18px 0 0; }
.t-skin-a .t-posted h2 { font-weight: 600; }
.t-skin-a .t-posted__btns .t-btn { border-radius: 0; }
.t-skin-a .t-posted__btns .t-btn:not(.is-pri) { border-color: #222; color: #222; }
@media (min-width: 768px) {
	.t-skin-a .t-posted { border-radius: 0; }
}

/* ---------- デザインA：口コミを書く（お店を選ぶ画面）：四角い枠の入力欄と、黒い枠のボタン ---------- */
.t-skin-a .t-pick { border-radius: 18px 18px 0 0; }
.t-skin-a .t-pick h2 { font-weight: 600; }
.t-skin-a .t-pick__search { border: 1px solid #ddd; }
.t-skin-a .t-pick__search:focus-within { border-color: #222; }
.t-skin-a .t-pick__ph .t-photo { border-radius: 0; }
.t-skin-a .t-pick__nm b { font-weight: 600; }
.t-skin-a .t-pick__near { border: 1px solid #222; background: #fff; }
@media (min-width: 768px) {
	.t-skin-a .t-pick { border-radius: 0; }
}

/* ---------- デザインA：口コミ一覧：四角い枠のカード（上に店舗、下に口コミ）、件数の右に絞り込み ---------- */
.t-skin-a .t-reviews .t-rkhead h2 { font-size: 14px; font-weight: 400; }
.t-skin-a .t-reviews .t-rkhead h2 b { margin-right: 4px; font-size: 22px; font-weight: 700; }
.t-skin-a .t-reviews .t-rkhead__cond { display: none; }
@media (max-width: 1023px) {
	/* スマホは件数のすぐ下に罫線、その下にエリアと並び順 */
	.t-skin-a .t-reviews .t-rkhead { padding-bottom: 0; border-bottom: 0; }
	.t-skin-a .t-reviews .t-rkhead h2 { align-self: stretch; padding-bottom: 14px; border-bottom: 1px solid #222; }
}
.t-skin-a .t-rvls { gap: 16px; margin-top: 20px; }
.t-skin-a .t-rvl { border: 1px solid #ddd; background: #fff; }
.t-skin-a .t-rvl__store { gap: 12px; padding: 12px 14px; border-bottom: 1px solid #ddd; }
.t-skin-a .t-rvl__store .t-photo { width: 44px; height: 44px; border-radius: 0; }
.t-skin-a .t-rvl__sn b { font-size: 14px; font-weight: 600; line-height: 1.5; }
.t-skin-a .t-rvl__sn small { font-size: 11px; color: #888; }
.t-skin-a .t-rvl__sn small > span + span::before { content: " ・ "; }
.t-skin-a .t-rvl__store > .t-ic { color: #888; }
.t-skin-a .t-rvl__b { padding: 16px 16px 14px; }
.t-skin-a .t-rvl__who { font-size: 13px; }
.t-skin-a .t-rvl__who .t-av { width: 32px; height: 32px; }
.t-skin-a .t-rvl__who b { font-weight: 400; }
.t-skin-a .t-rvl__who time { color: #888; }
.t-skin-a .t-rvl__score { margin-top: 14px; font-size: 13px; }
.t-skin-a .t-rvl__score .t-stars i { width: 13px; height: 13px; }
.t-skin-a .t-rvl h3 { margin-top: 8px; font-size: 16px; font-weight: 600; line-height: 1.6; }
.t-skin-a .t-rvl__text { margin-top: 8px; font-size: 13px; line-height: 1.9; color: #555; }
.t-skin-a .t-rvl__photos { gap: 6px; margin-top: 14px; }
.t-skin-a .t-rvl__photos .t-photo { width: 60px; height: 60px; border-radius: 0; }
.t-skin-a .t-rvl__b > :nth-last-child(2) { margin-bottom: 18px; }
.t-skin-a .t-rvl__foot { gap: 12px; padding-top: 16px; border-top: 1px solid #eee; font-size: 12px; color: #888; }
.t-skin-a .t-rvl__lbl { margin-right: 2px; }
.t-skin-a .t-rvl__replied { padding: 6px 10px; border: 1px solid var(--key); color: var(--key-text); }
.t-skin-a .t-rvl__foot a { font-size: 13px; }
.t-skin-a .t-rvl__arr::after { content: " ›"; }
@media (min-width: 1024px) {
	.t-skin-a .t-reviews .t-rkhead h2 b { font-size: 26px; }
	.t-skin-a .t-rvls { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin-top: 40px; }
	.t-skin-a .t-rvl__store { gap: 14px; padding: 16px 20px; }
	.t-skin-a .t-rvl__store .t-photo { width: 56px; height: 56px; }
	.t-skin-a .t-rvl__sn b { font-size: 15px; }
	.t-skin-a .t-rvl__sn small { font-size: 12px; }
	.t-skin-a .t-rvl__b { padding: 22px 24px 20px; }
	.t-skin-a .t-rvl__score { margin-top: 18px; font-size: 15px; }
	.t-skin-a .t-rvl__score .t-stars i { width: 15px; height: 15px; }
	.t-skin-a .t-rvl h3 { font-size: 18px; }
	.t-skin-a .t-rvl__text { font-size: 14px; line-height: 2; }
	.t-skin-a .t-rvl__photos .t-photo { width: 72px; height: 72px; }
	.t-skin-a .t-rvl__foot { gap: 16px; }
}

/* ---------- デザインA：ランキング：名前と条件の下に黒い罫線、四角い順位、横長の行 ---------- */
.t-skin-a .t-rkhead { flex-direction: column; align-items: flex-start; gap: 14px; padding-bottom: 16px; border-bottom: 1px solid #222; }
.t-skin-a .t-rkhead h2 { font-size: 18px; font-weight: 700; line-height: 1.4; }
.t-skin-a .t-rkhead__cond { font-size: 12px; color: #888; }
.t-skin-a .t-rkhead__ctl { width: 100%; }
.t-skin-a .t-rkhead__ctl select { flex: 1; height: 40px; padding: 0 30px 0 12px; border: 1px solid #ddd; border-radius: 0; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 12px center; font-size: 13px; -webkit-appearance: none; appearance: none; }
.t-skin-a .t-rkl__item > a { grid-template-columns: 110px minmax(0, 1fr); gap: 14px; padding: 18px 0; border-bottom: 1px solid #ddd; }
.t-skin-a .t-rkl__item .t-photo { aspect-ratio: 3 / 2; height: auto; border-radius: 0; }
.t-skin-a .t-rkl__no { position: absolute; left: 0; top: 18px; z-index: 1; width: 32px; height: 32px; background: #222; font-size: 14px; font-weight: 600; }
.t-skin-a .t-rkl__no.is-pr { width: auto; padding: 0 6px; height: 22px; }
.t-skin-a .t-rkl__tags { gap: 6px; font-size: 10px; line-height: 1; }
.t-skin-a .t-rkl__tags span { padding: 4px 6px; background: #f5f5f5; }
.t-skin-a .t-rkl h2 { margin-top: 6px; font-size: 15px; font-weight: 600; line-height: 1.6; }
.t-skin-a .t-rkl__score { gap: 8px; margin-top: 2px; font-size: 12px; }
.t-skin-a .t-rkl__score small { color: #888; }
.t-skin-a .t-rkl__ex { display: none; }
.t-skin-a .t-rkl .t-scard__chips { gap: 6px; margin-top: 6px; }
.t-skin-a .t-rkl .t-chip { padding: 4px 6px; border: 1px solid var(--key); border-radius: 0; background: none; color: var(--key-text); font-size: 10px; font-weight: 400; line-height: 1; }
@media (min-width: 1024px) {
	.t-skin-a .t-rkhead { flex-direction: row; justify-content: space-between; align-items: center; padding-bottom: 20px; }
	.t-skin-a .t-rkhead h2 { font-size: 20px; }
	.t-skin-a .t-rkhead__cond { margin-right: auto; font-size: 13px; }
	.t-skin-a .t-rkhead__ctl { width: auto; gap: 10px; }
	/* 文字と三角のあいだは 30px（幅は js/stopby.js が今の文字に合わせる） */
	.t-skin-a .t-rkhead__ctl select { flex: none; height: 44px; padding: 0 55px 0 16px; background-position: right 16px center; font-size: 14px; }
	.t-skin-a .t-rkl__item > a { grid-template-columns: 240px minmax(0, 1fr); gap: 30px; padding: 30px 0; }
	.t-skin-a .t-rkl__no { top: 30px; width: 44px; height: 44px; font-size: 18px; }
	.t-skin-a .t-rkl__tags { font-size: 12px; }
	.t-skin-a .t-rkl__tags span { padding: 6px 10px; }
	.t-skin-a .t-rkl h2 { margin-top: 12px; font-size: 20px; }
	.t-skin-a .t-rkl__score { margin-top: 6px; font-size: 14px; }
	.t-skin-a .t-rkl__ex { display: block; margin-top: 8px; font-size: 14px; line-height: 2; color: #555; }
	.t-skin-a .t-rkl .t-scard__chips { margin-top: 10px; }
	.t-skin-a .t-rkl .t-chip { padding: 6px 10px; font-size: 12px; }
}

/* ---------- デザインA：店舗の一覧：グレーの帯、四角い検索と条件、黒い罫線の下に横長の行（地図を隠すと3列のカード） ---------- */
.t-skin-a .t-list__filters { padding-top: 16px; }
.t-skin-a .t-lsearch__f.is-kw { height: 50px; padding: 0 14px; border: 1px solid #ddd; font-size: 16px; line-height: 1; }
.t-skin-a .t-lsearch__in .t-ic { width: 16px; height: 16px; color: #999; }
.t-skin-a .t-lsearch__f.is-sel, .t-skin-a .t-lsearch__go { display: none; }
.t-skin-a .t-lconds { margin-inline: calc(var(--gutter) * -1); padding: 12px var(--gutter); font-size: 13px; }
.t-skin-a .t-lconds > a, .t-skin-a .t-lconds > button { height: 36px; padding: 0 14px; border-color: #ddd; }
.t-skin-a .t-lconds > .t-lconds__all { border-color: #222; }
.t-skin-a .t-lconds__all b { border-radius: 50%; }
.t-skin-a .t-lconds > .t-lconds__clear { height: auto; padding: 0; }
.t-skin-a .t-lbar { padding: 6px 0 12px; border-bottom: 1px solid #222; font-size: 13px; }
.t-skin-a .t-lbar__count b { font-size: 18px; }
.t-skin-a .t-listmap__list { padding-bottom: 120px; }
.t-skin-a .t-lrow a { grid-template-columns: 110px minmax(0, 1fr); gap: 14px; padding: 18px 0; border-bottom: 1px solid #ddd; }
.t-skin-a .t-lrow .t-photo { aspect-ratio: 1; }
.t-skin-a .t-lrow__b { line-height: 1.6; }
.t-skin-a .t-lrow__tags { font-size: 11px; color: #888; }
.t-skin-a .t-lrow__name { margin-top: 2px; font-size: 15px; font-weight: 600; line-height: 1.6; }
.t-skin-a .t-lrow__score { font-size: 12px; }
.t-skin-a .t-lrow__score small { color: #888; font-size: inherit; }
.t-skin-a .t-lrow__chips { margin-top: 6px; font-size: 11px; }
.t-skin-a .t-lrow__chips span { padding: 4px 7px; border: 1px solid var(--key); color: var(--key-text); }
.t-skin-a .t-lrow a:hover .t-lrow__name { color: var(--key-text); }
.t-skin-a .t-listmap.has-map .t-mapfab { bottom: calc(24px + env(safe-area-inset-bottom, 0px)); height: 50px; gap: 8px; padding: 0 24px; border: 0; border-radius: 50px; background: #222; font-size: 14px; }
.t-skin-a .t-pin.is-no { border-radius: 0; }
.t-skin-a .t-map__again { border: 0; border-radius: 0; box-shadow: 0 4px 14px rgba(0, 0, 0, .12); }
@media (min-width: 1024px) {
	.t-skin-a .t-list { grid-template-columns: [full-start] minmax(40px, 1fr) [list-start] minmax(0, 720px) [list-end map-start] min(560px, 42%) [map-end] minmax(40px, 1fr) [full-end]; }
	.t-skin-a .t-list__filters { padding: 0; border-bottom: 1px solid #ddd; }
	.t-skin-a .t-list__filters > .t-wrap { display: grid; gap: 16px; max-width: 1360px; padding: 24px 40px; }
	.t-skin-a .t-lsearch { grid-template-columns: 1.6fr 1fr 1fr 160px; border: 1px solid #ddd; font-size: 15px; line-height: 1; }
	.t-skin-a .t-lsearch.is-two { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) 160px; }
	.t-skin-a .t-lsearch.is-one { grid-template-columns: minmax(0, 1fr) 160px; }
	.t-skin-a .t-lsearch__f.is-kw, .t-skin-a .t-lsearch__f.is-sel { display: flex; height: 56px; padding: 0 18px; border: 0; border-right: 1px solid #ddd; font-size: inherit; }
	.t-skin-a .t-lsearch__go { display: flex; }
	.t-skin-a .t-lconds { gap: 8px; margin: 0; padding: 0; }
	.t-skin-a .t-lconds__lbl { margin-right: 6px; color: #888; }
	.t-skin-a .t-lconds > .t-lconds__clear { margin-left: auto; }
	.t-skin-a .t-lbar { margin-top: 30px; padding: 0 0 20px; font-size: 14px; }
	.t-skin-a .t-lbar__count b { font-size: 22px; }
	.t-skin-a .t-lbar__sort { margin-left: auto; border: 1px solid #ddd; }
	.t-skin-a .t-lbar__sort a { padding: 10px 16px; color: inherit; text-decoration: none; }
	.t-skin-a .t-lbar__sort a:not([aria-current]):hover { background: var(--hover-bg); }
	.t-skin-a .t-lbar__sort a[aria-current] { background: #222; color: #fff; }
	.t-skin-a .t-lbar__map { height: 36px; padding: 0 14px; border: 1px solid #222; font-size: 13px; }
	.t-skin-a .t-list.has-map:not(.is-map-off) .t-listmap__map { grid-row: 3 / span 2; top: calc(var(--t-top) + 20px); height: calc(100vh - var(--t-top) - 40px); margin: 30px calc(-1 * clamp(0px, (100vw - 1360px) / 2, 40px)) 0 80px; }
	.t-skin-a .t-lrow a { grid-template-columns: minmax(140px, 240px) minmax(0, 1fr); gap: 30px; padding: 30px 0; }
	.t-skin-a .t-lrow a:hover { background: color-mix(in srgb, var(--key) 4%, #fff); }
	.t-skin-a .t-lrow .t-photo { aspect-ratio: 3 / 2; }
	.t-skin-a .t-lrow__no { position: absolute; left: 0; top: 30px; z-index: 1; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; background: var(--key); color: var(--on-key); font-size: 13px; line-height: 1; }
	.t-skin-a .t-lrow__tags { display: flex; flex-wrap: wrap; gap: 6px; font-size: 12px; line-height: 1; color: inherit; }
	.t-skin-a .t-lrow__tags > span { padding: 6px 10px; background: #f5f5f5; }
	.t-skin-a .t-lrow__tags > span + span::before { content: none; }
	.t-skin-a .t-lrow__name { margin-top: 12px; font-size: 20px; }
	.t-skin-a .t-lrow__score { gap: 8px; margin-top: 6px; font-size: 14px; }
	.t-skin-a .t-lrow__score .t-stars i { width: 14px; height: 14px; }
	.t-skin-a .t-lrow__ex { margin-top: 8px; font-size: 14px; line-height: 2; color: #555; }
	.t-skin-a .t-lrow__chips { gap: 6px; margin-top: 10px; font-size: 12px; }
	.t-skin-a .t-lrow__chips span { padding: 6px 10px; }
	.t-skin-a .t-map__again { top: 20px; height: auto; padding: 12px 20px; font-size: 13px; line-height: 1; }
	/* 地図を隠したとき（地図を使わない設定も）：3列のカード */
	.t-skin-a :is(.t-list:not(.has-map), .t-list.is-map-off) .t-lrows { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px 30px; margin-top: 30px; }
	.t-skin-a :is(.t-list:not(.has-map), .t-list.is-map-off) .t-lrow a { display: block; padding: 0; border: 0; background: none; }
	.t-skin-a :is(.t-list:not(.has-map), .t-list.is-map-off) .t-lrow__no { top: 0; }
	.t-skin-a :is(.t-list:not(.has-map), .t-list.is-map-off) .t-lrow__tags { margin-top: 16px; }
	.t-skin-a :is(.t-list:not(.has-map), .t-list.is-map-off) .t-lrow__name { font-size: 18px; }
	.t-skin-a :is(.t-list:not(.has-map), .t-list.is-map-off) .t-lrow__score { margin-top: 4px; }
	.t-skin-a :is(.t-list:not(.has-map), .t-list.is-map-off) :is(.t-lrow__ex, .t-lrow__chips) { display: none; }
}

/* ---------- デザインA：店舗ページ ---------- */
/* パンくずは全幅のグレーの帯 */
.t-skin-a.single-review .t-crumb { background: var(--sand); box-shadow: 0 0 0 100vmax var(--sand); clip-path: inset(0 -100vmax); padding: 18px 0; font-size: 13px; }
.t-skin-a .t-gallery, .t-skin-a .t-gallery .t-photo { border-radius: 0; }
.t-skin-a .t-shead__tags a, .t-skin-a .t-shead__tags .t-cat, .t-skin-a .t-shead__tags .t-plan { border-radius: 0; }
.t-skin-a .t-cat { border: 0; background: var(--sand); padding: 2px 12px; }
.t-skin-a .t-plan { border-radius: 0; padding: 2px 12px; font-weight: 400; }
@media (min-width: 1024px) { .t-skin-a .t-shead h1 { font-size: 36px; font-weight: 600; line-height: 1.5; } }
.t-skin-a .t-okchips .t-chip { border-radius: 0; background: #fff; border: 1px solid var(--key); color: var(--key-text); font-weight: 400; }
.t-skin-a .t-okchips .t-chip.is-no { border-color: #ddd; color: #aaa; }
.t-skin-a .t-shead__act .t-btn { border-radius: 60px; font-weight: 400; }
@media (min-width: 1024px) { .t-skin-a .t-shead__act .t-btn { min-width: 260px; height: 60px; } }
/* ページ内のタブ：下線 */
.t-skin-a .t-anchors a { border-radius: 0; background: none; font-weight: 400; }
@media (min-width: 1024px) {
	.t-skin-a .t-anchors { gap: 0; padding: 0; border-bottom: 1px solid #ddd; }
	.t-skin-a .t-anchors a { height: auto; padding: 22px 30px; border: 0; border-bottom: 3px solid transparent; color: var(--sub); }
	.t-skin-a .t-anchors a:hover { color: var(--ink); }
	.t-skin-a .t-anchors a[aria-current="true"], .t-skin-a .t-anchors a.is-on { background: none; color: var(--ink); border-bottom-color: var(--key); }
}
/* 欄の見出し：和文 28px と黒い下線（欧文の飾りは出さない） */
.t-skin-a .t-blk .t-sechead { padding-bottom: 18px; border-bottom: 1px solid var(--ink); margin-bottom: 40px; }
.t-skin-a .t-blk .t-sechead .t-en { display: none; }
.t-skin-a .t-blk .t-sechead .t-ja { margin: 0; font-size: 22px; font-weight: 600; color: var(--ink); line-height: 1.5; }
@media (min-width: 1024px) { .t-skin-a .t-blk .t-sechead .t-ja { font-size: 28px; } }
.t-skin-a .t-coupon { border-radius: 0; }
.t-skin-a .t-rsum { border-radius: 0; }
.t-skin-a .t-sidebox, .t-skin-a .t-near .t-photo, .t-skin-a .t-smap .t-map { border-radius: 0; }
.t-skin-a .t-sidebox .t-btn { border-radius: 56px; font-weight: 400; }
.t-skin-a .t-like, .t-skin-a .t-rvbtn { font-weight: 400; }

/* ========== スマホのフッターバー（A〜D 共通。functions/stopby/footer-bar.php）：白い帯、上に線、アイコンと小さな文字 ========== */
.t-fbar { display: none; }
@media (max-width: 1023px) {
	body.t-has-fbar { padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px)); }
	body.t-has-fbar:has(.t-fbar.is-store) { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }
	.t-fbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: grid; grid-template-columns: repeat(var(--t-fbar-n, 4), minmax(0, 1fr)); padding-bottom: env(safe-area-inset-bottom, 0px); border-top: 1px solid var(--line); background: #fff; box-shadow: 0 -4px 16px rgba(0, 0, 0, .05); }
	.t-fbar__b { display: grid; justify-items: center; align-content: center; gap: 2px; min-height: 56px; padding: 6px 2px 8px; color: var(--ink); font-size: 10px; line-height: 1.3; text-align: center; text-decoration: none; }
	.t-fbar__b .t-ic { width: 22px; height: 22px; }
	.mobile_device .t-fbar__b[href^="tel:"] { text-decoration: none; } /* style.css の電話リンクの下線を消す */
	.t-fbar__b.is-on { color: var(--key-text); font-weight: 600; }
	.t-fbar.is-text .t-fbar__b .t-ic { display: none; }
	.t-fbar.is-text .t-fbar__b { font-size: 12px; font-weight: 600; }
	.t-fbar.is-text .t-fbar__b + .t-fbar__b { border-left: 1px solid var(--line); }
	/* お店のページ：保存（アイコンだけ）・電話か地図・口コミを書く（広く） */
	.t-fbar.is-store { display: flex; gap: 8px; padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom, 0px)); }
	.t-fbar.is-store .t-fbar__b { flex: 1 1 0; display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 0 8px; border: 1px solid var(--line); border-radius: var(--r-s); font-size: 13px; font-weight: 600; }
	.t-fbar.is-store .t-fbar__b .t-ic { display: block; width: 18px; height: 18px; }
	.t-fbar.is-store .t-fbar__b.is-icon span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.t-fbar.is-store .t-fbar__b.is-pri { flex-grow: 2; border-color: var(--key); background: var(--key); color: var(--on-key); }
	.t-fbar.is-store .t-fbar__b + .t-fbar__b { border-left: 1px solid var(--line); }
	.t-fbar.is-store .t-fbar__b.is-pri { border-left-color: var(--key); }
	.t-fbar .js-t-fav[aria-pressed="true"] { border-color: var(--err); color: var(--err); }
}
