/* はりまっぷ交流ひろば */
.hmk, .hmk-modal, .hmk-toast {
	--hmk-ink: #1d2a30;
	--hmk-sub: #5b6b72;
	--hmk-line: #e3e9ec;
	--hmk-bg: #ffffff;
	--hmk-soft: #f4f8f9;
	--hmk-brand: #173c48;
	--hmk-brand-2: #24606f;
	--hmk-hot: #ff6b3d;
	--hmk-sun: #ffc93c;
	--hmk-good: #1f9d6b;
	--hmk-r: 16px;
	--hmk-shadow: 0 1px 2px rgba(23, 60, 72, .06), 0 6px 20px rgba(23, 60, 72, .08);
}
.hmk {
	margin: 48px 0 24px;
	color: var(--hmk-ink);
	font-size: 15px;
	line-height: 1.7;
	-webkit-tap-highlight-color: transparent;
}
.hmk *, .hmk *::before, .hmk *::after, .hmk-modal * { box-sizing: border-box; }
.hmk [hidden], .hmk-modal [hidden] { display: none !important; }
/* テーマのボタン装飾を打ち消す */
.hmk button, .hmk-modal button {
	margin: 0;
	font: inherit;
	color: inherit;
	letter-spacing: normal;
	text-transform: none;
	line-height: 1.5;
	cursor: pointer;
}
.hmk :focus-visible { outline: 3px solid var(--hmk-sun); outline-offset: 2px; }

/* ---------- 見出し ---------- */
.hmk-hero {
	position: relative;
	overflow: hidden;
	padding: 22px 22px 20px;
	border-radius: var(--hmk-r) var(--hmk-r) 0 0;
	background: linear-gradient(120deg, var(--hmk-brand) 0%, var(--hmk-brand-2) 62%, #2f7d84 100%);
	color: #fff;
}
.hmk-hero::after {
	content: "";
	position: absolute;
	right: -40px;
	top: -60px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 201, 60, .45), rgba(255, 201, 60, 0) 70%);
	pointer-events: none;
}
.hmk .hmk-hero__title, #body_wrap .post_content .hmk .hmk-hero__title {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: #fff;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1.4;
}
.hmk .hmk-hero__title::before, .hmk .hmk-hero__title::after, #body_wrap .post_content .hmk .hmk-hero__title::before, #body_wrap .post_content .hmk .hmk-hero__title::after { display: none; }
.hmk .hmk-hero__sub { margin: 4px 0 0; font-size: 13.5px; line-height: 1.6; color: #fff; opacity: .88; }
.hmk-stats[hidden] { display: none !important; }
/* 1.1.9：帯は見出し1行（数字がある時だけ下に並ぶ）。記事末の縦の長さを詰める */
.hmk .hmk-hero { padding-top: 14px; padding-bottom: 14px; }
/* サイトの再訪カード（.cr-revisit）の「♡ 行きたい」は交流ひろばの「😍 行きたい」と同じ（1.1.4で連動）ので、交流ひろばのある記事では出さない */
body:has(#hmk) .cr-revisit .hm-save-btn--revisit { display: none !important; }
.hmk-stats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.hmk-stat {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 11px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .14);
	font-size: 13px;
	font-weight: 700;
}

.hmk-app {
	padding: 20px 18px 22px;
	border: 1px solid var(--hmk-line);
	border-top: 0;
	border-radius: 0 0 var(--hmk-r) var(--hmk-r);
	background: var(--hmk-bg);
}
.hmk-block + .hmk-block { margin-top: 28px; }
.hmk .hmk-h, #body_wrap .post_content .hmk .hmk-h {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--hmk-ink);
	font-size: 16.5px;
	font-weight: 800;
	line-height: 1.4;
}
.hmk .hmk-h::before, .hmk .hmk-h::after, #body_wrap .post_content .hmk .hmk-h::before, #body_wrap .post_content .hmk .hmk-h::after { display: none; }
.hmk-h__count { color: var(--hmk-hot); }
.hmk-loading, .hmk-note { color: var(--hmk-sub); font-size: 14px; }

/* ---------- 記事リアクション ---------- */
.hmk-react { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.hmk-react__btn {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-height: 96px;
	padding: 12px 4px 10px;
	border: 2px solid var(--hmk-line);
	border-radius: 14px;
	background: var(--hmk-bg);
	transition: transform .12s ease, border-color .2s, background .2s, box-shadow .2s;
}
.hmk-react__btn:hover { border-color: #c9d6db; box-shadow: var(--hmk-shadow); }
.hmk-react__btn:active { transform: scale(.94); }
.hmk-react__emoji { font-size: 30px; line-height: 1.1; transition: transform .25s cubic-bezier(.3, 1.6, .5, 1); }
.hmk-react__label { font-size: 12.5px; font-weight: 700; color: var(--hmk-sub); white-space: nowrap; }
.hmk-react__text { display: flex; flex-direction: column; align-items: center; line-height: 1.35; }
.hmk-react__count { font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hmk-react__btn[aria-pressed="true"] {
	border-color: var(--hmk-hot);
	background: linear-gradient(180deg, #fff6f2, #ffe9df);
}
.hmk-react__btn[aria-pressed="true"] .hmk-react__label,
.hmk-react__btn[aria-pressed="true"] .hmk-react__count { color: #d2461a; }
.hmk-react__btn.is-pop .hmk-react__emoji { transform: scale(1.35) rotate(-8deg); }
.hmk-proof { margin: 10px 2px 0; color: var(--hmk-sub); font-size: 13px; }
.hmk-proof b { color: var(--hmk-ink); }

.hmk-burst {
	position: absolute;
	left: 50%;
	top: 34%;
	pointer-events: none;
	font-size: 18px;
	animation: hmk-burst .75s ease-out forwards;
}
@keyframes hmk-burst {
	0% { transform: translate(-50%, -50%) scale(.6); opacity: 1; }
	100% { transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.1); opacity: 0; }
}
.hmk-bump { animation: hmk-bump .35s ease; }
@keyframes hmk-bump { 40% { transform: translateY(-4px) scale(1.18); } }

/* ---------- お題投票 ---------- */
.hmk-poll {
	padding: 16px;
	border-radius: 14px;
	background: var(--hmk-soft);
}
.hmk-poll__q { margin: 0 0 10px; font-weight: 800; font-size: 15.5px; }
.hmk-poll__q::before { content: "Q. "; color: var(--hmk-hot); }
.hmk-poll__opts { display: grid; gap: 8px; }
.hmk-poll__opt {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 46px;
	padding: 10px 14px;
	border: 2px solid var(--hmk-line);
	border-radius: 12px;
	background: var(--hmk-bg);
	text-align: left;
	font-weight: 700;
	transition: border-color .2s, transform .12s;
}
.hmk-poll__opt:hover { border-color: var(--hmk-brand-2); }
.hmk-poll__opt:active { transform: scale(.98); }
.hmk-poll__bar {
	position: absolute;
	inset: 0 auto 0 0;
	width: 0;
	background: linear-gradient(90deg, rgba(36, 96, 111, .16), rgba(36, 96, 111, .08));
	transition: width .7s cubic-bezier(.2, .8, .2, 1);
}
.hmk-poll__opt > span { position: relative; }
.hmk-poll__opt > .hmk-poll__bar { position: absolute; }
.hmk .hmk-poll__opt { justify-content: flex-start; text-align: left; }
.hmk-poll__label { flex: 1; min-width: 0; }
.hmk-poll__pct { flex: none; }
.hmk-poll__pct { font-variant-numeric: tabular-nums; color: var(--hmk-brand-2); font-weight: 800; }
.hmk-poll.is-voted .hmk-poll__opt.is-mine { border-color: var(--hmk-brand-2); }
.hmk-poll.is-voted .hmk-poll__opt.is-mine .hmk-poll__bar { background: linear-gradient(90deg, rgba(255, 107, 61, .28), rgba(255, 201, 60, .22)); }
.hmk-poll__meta { margin: 8px 2px 0; color: var(--hmk-sub); font-size: 12.5px; }
.hmk-poll__note { margin: 2px 2px 0; color: var(--hmk-sub); font-size: 11px; opacity: .8; }

/* ---------- 投稿フォーム ---------- */
.hmk-compose {
	border: 2px solid var(--hmk-line);
	border-radius: 14px;
	background: var(--hmk-bg);
	transition: border-color .2s, box-shadow .2s;
}
.hmk-compose.is-open { border-color: var(--hmk-brand-2); box-shadow: var(--hmk-shadow); }
.hmk-compose__fake {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 14px;
	border: 0;
	background: none;
	color: var(--hmk-sub);
	text-align: left;
}
.hmk-compose__fake .hmk-av { flex: none; }
.hmk-compose__form { display: none; padding: 14px; }
.hmk-compose__fakes { display: flex; align-items: center; }
.hmk-compose__fakes .hmk-compose__fake { flex: 1; min-width: 0; }
.hmk-compose__fake-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hmk .hmk-compose__fake-photo {
	flex: none;
	width: 48px;
	height: 48px;
	margin-right: 8px;
	border: 0;
	border-radius: 12px;
	background: var(--hmk-soft);
	font-size: 22px;
}
.hmk-compose.is-open .hmk-compose__fakes { display: none; }
.hmk-compose.is-drag { border-color: var(--hmk-hot); border-style: dashed; background: #fff8f4; }
.hmk-compose.is-open .hmk-compose__form { display: block; }
.hmk-compose textarea,
.hmk-compose input[type="text"],
.hmk-compose select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #cdd8dc;
	border-radius: 10px;
	background: #fff;
	color: var(--hmk-ink);
	font: inherit;
	font-size: 16px; /* iOSで拡大されないように */
}
.hmk-compose textarea { min-height: 110px; resize: vertical; line-height: 1.6; }
.hmk-compose__row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.hmk-compose__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; }
.hmk-compose__rule { margin: 8px 0 0; font-size: 12px; color: var(--hmk-sub); }
.hmk-compose__rule a { color: inherit; }
.hmk-counter { font-size: 12.5px; color: var(--hmk-sub); font-variant-numeric: tabular-nums; }
.hmk-counter.is-over { color: #c62828; font-weight: 700; }
.hmk-replyto {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
	padding: 6px 10px;
	border-radius: 8px;
	background: var(--hmk-soft);
	font-size: 13px;
}
.hmk-replyto button { border: 0; background: none; color: var(--hmk-sub); text-decoration: underline; }
.hmk-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.hmk .hmk-btn, .hmk-modal .hmk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	padding: 8px 20px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--hmk-hot), #ff8f3d);
	color: #fff !important;
	font-weight: 800;
	box-shadow: 0 4px 12px rgba(255, 107, 61, .3);
	transition: transform .12s, opacity .2s;
}
.hmk-btn:active { transform: scale(.96); }
.hmk-btn[disabled] { opacity: .5; cursor: default; box-shadow: none; }
.hmk .hmk-btn--ghost, .hmk-modal .hmk-btn--ghost {
	background: var(--hmk-bg);
	color: var(--hmk-brand) !important;
	border: 2px solid var(--hmk-line);
	box-shadow: none;
}

/* ---------- コメント一覧 ---------- */
.hmk-tabs { display: inline-flex; margin-left: auto; padding: 3px; border-radius: 999px; background: var(--hmk-soft); }
.hmk-tab { white-space: nowrap; padding: 4px 12px; border: 0; border-radius: 999px; background: none; font-size: 13px; font-weight: 700; color: var(--hmk-sub); }
.hmk-tab[aria-selected="true"] { background: var(--hmk-bg); color: var(--hmk-ink); box-shadow: 0 1px 3px rgba(0, 0, 0, .1); }

.hmk-list, .hmk-replies { margin: 0; padding: 0; list-style: none; }
.hmk-list { margin-top: 14px; }
.hmk-c { position: relative; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--hmk-line); list-style: none; }
.hmk-c::before { display: none; }
.hmk-c:last-child { border-bottom: 0; }
.hmk-c.is-best {
	margin: 4px 0 8px;
	padding: 14px;
	border: 2px solid var(--hmk-sun);
	border-radius: 14px;
	background: linear-gradient(180deg, #fffbea, #fff);
}
.hmk-c.is-new { animation: hmk-in .6s ease; }
@keyframes hmk-in { from { background: #fff3c4; } to { background: transparent; } }
.hmk-c.is-pending { opacity: .75; }
.hmk-c__row { display: flex; gap: 10px; }
.hmk-c__main { flex: 1; min-width: 0; }
.hmk-c__head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 13px; }
.hmk-c__name { font-weight: 800; font-size: 14px; }
.hmk-c__time { color: var(--hmk-sub); font-size: 12px; }
.hmk-c__body { margin: 4px 0 0; white-space: pre-wrap; word-break: break-word; font-size: 15px; }
.hmk-c__body.is-clamped { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.hmk-more { border: 0; background: none; padding: 0; color: var(--hmk-brand-2); font-size: 13px; font-weight: 700; }

.hmk-av {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	flex: none;
	border-radius: 50%;
	background: hsl(var(--h, 190), 55%, 88%);
	color: hsl(var(--h, 190), 45%, 28%);
	font-weight: 800;
	font-size: 16px;
}
.hmk-av--editor { background: var(--hmk-brand); color: #fff; font-size: 13px; }
.hmk-badge {
	display: inline-flex;
	align-items: center;
	padding: 0 8px;
	border-radius: 999px;
	background: var(--hmk-soft);
	color: var(--hmk-brand-2);
	font-size: 11.5px;
	font-weight: 700;
	line-height: 20px;
}
.hmk-badge--editor { background: var(--hmk-brand); color: #fff; }
.hmk-badge--best { background: var(--hmk-sun); color: #5a3d00; }
.hmk-badge--pick { background: var(--hmk-brand); color: #fff; }
.hmk-badge--first { background: #ffe1d6; color: #b33a12; }
.hmk-badge--pending { background: #eef0f2; color: var(--hmk-sub); }

.hmk-c__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.hmk-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 32px;
	padding: 2px 10px;
	border: 1px solid var(--hmk-line);
	border-radius: 999px;
	background: var(--hmk-bg);
	font-size: 12.5px;
	font-weight: 700;
	color: var(--hmk-sub);
	transition: transform .12s, background .2s, border-color .2s;
}
.hmk-chip:active { transform: scale(.92); }
.hmk-chip[aria-pressed="true"] { border-color: var(--hmk-hot); background: #fff1eb; color: #c2410c; }
.hmk-chip b { font-variant-numeric: tabular-nums; }
.hmk-link { border: 0; background: none; padding: 4px 6px; color: var(--hmk-sub); font-size: 12.5px; font-weight: 700; }
.hmk-link:hover { color: var(--hmk-brand); }
.hmk-link--report { margin-left: auto; font-weight: 400; opacity: .75; }

.hmk-replies { margin: 10px 0 0 22px; padding-left: 14px; border-left: 3px solid var(--hmk-line); }
.hmk-replies .hmk-c { padding: 10px 0; }
.hmk-replies .hmk-av { width: 30px; height: 30px; font-size: 13px; }

.hmk-empty {
	padding: 26px 12px;
	border: 2px dashed var(--hmk-line);
	border-radius: 14px;
	text-align: center;
	color: var(--hmk-sub);
}
.hmk-empty__big { display: block; font-size: 38px; line-height: 1.2; }
.hmk-empty b { color: var(--hmk-ink); }
.hmk-loadmore { display: flex; justify-content: center; margin-top: 14px; }

/* ---------- 自分の記録 ---------- */
.hmk-mine {
	margin-top: 14px;
	padding: 14px 16px;
	border-radius: 14px;
	background: linear-gradient(135deg, #fff7e0, #ffeef3);
	border: 1px solid #f2d27a;
	font-size: 14px;
	line-height: 1.6;
}
.hmk-mine__head { display: flex; align-items: center; gap: 10px; }
.hmk-mine__icon { display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: #fff; box-shadow: 0 2px 8px rgba(194, 120, 0, .25); font-size: 24px; }
.hmk-mine__who { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.hmk-mine__label { font-size: 12px; font-weight: 800; color: #7a5200; }
.hmk-mine__title { font-size: 18px; font-weight: 900; color: #3d2a00; line-height: 1.35; }
.hmk-mine__pt { flex: 0 0 auto; padding: 2px 10px; border-radius: 999px; background: #ff6b3d; color: #fff; font-size: 14px; font-weight: 900; }
.hmk-mine__bar { height: 10px; margin: 10px 0 4px; border-radius: 999px; background: rgba(0, 0, 0, .08); overflow: hidden; }
.hmk-mine__bar > i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #ffc93c, #ff6b3d); transition: width .6s ease; }
.hmk .hmk-mine__next { margin: 0; font-size: 13.5px; font-weight: 700; color: #5a3d00; }
.hmk .hmk-mine__tips { margin: 4px 0 8px; font-size: 12.5px; color: #7a5a1a; }
.hmk-mine__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.hmk-mine__badge { padding: 0 9px; border-radius: 999px; background: #fff; border: 1px solid #f2d27a; font-size: 12.5px; font-weight: 700; line-height: 26px; }
.hmk-mine__badge.is-locked { background: transparent; border-style: dashed; color: #8a7a5a; font-weight: 600; }
.hmk-mine__carry { margin-top: 8px; padding: 0; border: 0; background: none; color: #7a5200; font: inherit; font-size: 12.5px; text-decoration: underline; cursor: pointer; }
.hmk-badge--rank { background: #fff3d6 !important; color: #6b4a00 !important; border: 1px solid #f2d27a; font-weight: 800; }
@media (prefers-reduced-motion: reduce) { .hmk-mine__bar > i { transition: none; } }

/* ---------- 話題の記事 ---------- */
.hmk-rank { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.hmk-rank__item { margin: 0; padding: 0; list-style: none; }
.hmk-rank__item::before { display: none; }
.hmk-rank__link {
	display: grid;
	grid-template-columns: 28px auto 1fr;
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 10px;
	padding: 8px 10px;
	border-radius: 12px;
	background: var(--hmk-soft);
	color: var(--hmk-ink) !important;
	text-decoration: none !important;
	transition: background .2s;
}
.hmk-rank__link:hover { background: #e8f1f3; }
.hmk-rank__no { grid-row: 1 / 3; font-size: 20px; font-weight: 900; color: var(--hmk-brand-2); text-align: center; }
.hmk-rank__item:nth-child(1) .hmk-rank__no { color: #e0a800; }
.hmk-rank__item:nth-child(2) .hmk-rank__no { color: #8c9aa3; }
.hmk-rank__item:nth-child(3) .hmk-rank__no { color: #c07a43; }
.hmk-rank__img { grid-row: 1 / 3; width: 56px; height: 56px; border-radius: 10px; object-fit: cover; }
.hmk-rank__title { font-size: 14px; font-weight: 700; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hmk-rank__meta { font-size: 12px; color: var(--hmk-sub); }

/* ---------- 確認ダイアログ・トースト ---------- */
.hmk-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 16px;
	background: rgba(15, 30, 36, .45);
	animation: hmk-fade .2s ease;
}
@keyframes hmk-fade { from { opacity: 0; } }
.hmk-modal__box {
	width: 100%;
	max-width: 440px;
	padding: 22px 20px 18px;
	border-radius: 18px;
	background: #fff;
	color: var(--hmk-ink, #1d2a30);
	box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
	animation: hmk-up .28s cubic-bezier(.2, .9, .3, 1.2);
	font-size: 15px;
	line-height: 1.7;
}
@keyframes hmk-up { from { transform: translateY(30px); opacity: 0; } }
.hmk-modal__emoji { font-size: 34px; line-height: 1; }
.hmk-modal__title { margin: 8px 0 4px; font-size: 17px; font-weight: 800; }
.hmk-modal__text { margin: 0; color: #5b6b72; font-size: 14px; }
.hmk-modal__words { margin: 8px 0 0; font-size: 13px; color: #b33a12; }
.hmk-modal__acts { display: grid; gap: 8px; margin-top: 16px; }
.hmk-modal__acts .hmk-btn { width: 100%; }
.hmk-modal__report { display: grid; gap: 6px; margin-top: 12px; }
.hmk-modal__report label { display: flex; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid #e3e9ec; border-radius: 10px; font-size: 14px; }
@media (min-width: 640px) { .hmk-modal { align-items: center; } }

.hmk-toast {
	position: fixed;
	left: 50%;
	bottom: 20px;
	z-index: 100001;
	max-width: calc(100% - 32px);
	padding: 12px 18px;
	border-radius: 14px;
	background: #173c48;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
	transform: translate(-50%, 0);
	animation: hmk-toast 4.2s ease forwards;
}
.hmk-toast a { color: var(--hmk-sun, #ffc93c); }
@keyframes hmk-toast {
	0% { transform: translate(-50%, 30px); opacity: 0; }
	8%, 88% { transform: translate(-50%, 0); opacity: 1; }
	100% { transform: translate(-50%, 10px); opacity: 0; }
}
.hmk-confetti { position: fixed; top: -12px; z-index: 100002; width: 8px; height: 14px; pointer-events: none; animation: hmk-fall linear forwards; }
@keyframes hmk-fall { to { transform: translate3d(var(--dx), 105vh, 0) rotate(720deg); } }

/* ---------- 単独設置のランキング ---------- */
.hmk-standalone-ranking { margin: 24px 0; }

@media (max-width: 560px) {
	.hmk-app { padding: 16px 12px 18px; }
	.hmk-hero { padding: 18px 16px 16px; }
	.hmk-react { grid-template-columns: repeat(2, 1fr); }
	.hmk-react__btn { min-height: 0; flex-direction: row; justify-content: flex-start; gap: 8px; padding: 10px 12px; }
	.hmk-react__emoji { font-size: 26px; }
	.hmk-react__text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.3; }
	.hmk-compose__row { grid-template-columns: 1fr; }
	.hmk-replies { margin-left: 8px; }
	.hmk-tab { padding: 3px 10px; font-size: 12px; }
	.hmk-av { width: 32px; height: 32px; font-size: 14px; }
	.hmk-c__acts { gap: 4px; }
	.hmk-chip { padding: 2px 9px; }
	.hmk-chip__label { display: none; }
	.hmk-c.is-best { padding: 12px 10px; }
	.hmk-link--report { margin-left: 0; }
	.hmk-link { padding: 4px; }
}

@media (prefers-reduced-motion: reduce) {
	.hmk *, .hmk-modal, .hmk-modal__box, .hmk-toast, .hmk-confetti { animation: none !important; transition: none !important; }
	.hmk-confetti, .hmk-burst { display: none; }
}

/* ---------- 1.1：写真・行った/行きたい連動・目立つ表示 ---------- */
.hmk-link-card {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 12px;
	align-items: center;
	margin-top: 12px;
	padding: 14px 40px 14px 14px;
	border-radius: 14px;
	background: linear-gradient(120deg, #fff1e8, #fff9e6);
	animation: hmk-up .3s ease;
}
.hmk-link-card__emoji { font-size: 30px; line-height: 1; }
.hmk-link-card__text { display: flex; flex-direction: column; min-width: 0; font-size: 13px; color: var(--hmk-sub); }
.hmk-link-card__text b { color: var(--hmk-ink); font-size: 15px; }
.hmk-link-card__acts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.hmk-link-card__acts .hmk-btn { flex: 1 1 140px; }
.hmk .hmk-link-card__close { position: absolute; top: 6px; right: 8px; width: 32px; height: 32px; border: 0; background: none; color: var(--hmk-sub); font-size: 20px; }

.hmk-tags { display: flex; gap: 8px; margin-bottom: 8px; }
.hmk .hmk-tag {
	padding: 6px 14px;
	border: 2px solid var(--hmk-line);
	border-radius: 999px;
	background: var(--hmk-bg);
	font-size: 13.5px;
	font-weight: 700;
	color: var(--hmk-sub);
}
.hmk .hmk-tag[aria-pressed="true"] { border-color: var(--hmk-hot); background: #fff1eb; color: #c2410c; }
.hmk-quick { display: flex; gap: 6px; margin-top: 8px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.hmk-quick::-webkit-scrollbar { display: none; }
.hmk .hmk-quick__chip {
	flex: none;
	padding: 4px 12px;
	border: 1px dashed #c3d0d5;
	border-radius: 999px;
	background: var(--hmk-soft);
	font-size: 12.5px;
	color: var(--hmk-brand-2);
}

.hmk-photo-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.hmk .hmk-photo-btn {
	min-height: 64px;
	padding: 8px 16px;
	border: 2px dashed #b9c9cf;
	border-radius: 12px;
	background: var(--hmk-soft);
	color: var(--hmk-brand);
	font-weight: 800;
}
.hmk .hmk-photo-btn[disabled] { opacity: .5; cursor: default; }
.hmk-thumbs { display: flex; flex-wrap: wrap; gap: 8px; }
.hmk-thumb { position: relative; width: 64px; height: 64px; }
.hmk-thumb img { width: 64px; height: 64px; border-radius: 10px; object-fit: cover; }
.hmk .hmk-thumb__x {
	position: absolute;
	top: -6px;
	right: -6px;
	width: 24px;
	height: 24px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--hmk-ink);
	color: #fff;
	font-size: 13px;
	line-height: 1;
}

.hmk-badge--went { background: #e3f4ec; color: #17734f; }
.hmk-badge--want { background: #ffe8f0; color: #b0285a; }

.hmk-gallery { display: grid; gap: 4px; margin-top: 8px; max-width: 520px; border-radius: 12px; overflow: hidden; }
.hmk-gallery--1 { grid-template-columns: 1fr; }
.hmk-gallery--2 { grid-template-columns: 1fr 1fr; }
.hmk-gallery--3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.hmk-gallery--3 .hmk-gallery__item:first-child { grid-row: 1 / 3; }
.hmk-gallery--4 { grid-template-columns: 1fr 1fr; }
.hmk .hmk-gallery__item { display: block; padding: 0; border: 0; background: var(--hmk-soft); cursor: zoom-in; }
.hmk-gallery__item img { display: block; width: 100%; height: 100%; max-height: 360px; aspect-ratio: 4 / 3; object-fit: cover; }
.hmk-gallery--1 .hmk-gallery__item img { aspect-ratio: auto; max-height: 420px; }

.hmk-modal__box.hmk-lightbox { position: relative; max-width: 960px; padding: 0; background: #0d1a1f; overflow: hidden; }
.hmk-lightbox__img { display: block; width: 100%; max-height: 80vh; object-fit: contain; }
.hmk-modal .hmk-lightbox__close { position: absolute; top: 8px; right: 8px; z-index: 1; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; font-size: 22px; }
.hmk-lightbox__nav { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 8px; color: #fff; font-size: 13px; }
.hmk-modal .hmk-lightbox__nav button { width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 26px; }

.hmk-empty__act { margin-top: 12px; }

.hmk-fab {
	position: fixed;
	right: calc(16px + env(safe-area-inset-right, 0px));
	bottom: calc(18px + env(safe-area-inset-bottom, 0px));
	z-index: 9990;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 52px;
	padding: 10px 18px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #ff6b3d, #ff8f3d);
	color: #fff;
	font: inherit;
	font-size: 15px;
	font-weight: 800;
	box-shadow: 0 8px 24px rgba(255, 107, 61, .4);
	cursor: pointer;
	animation: hmk-up .3s ease;
}
.hmk-fab[hidden], .hmk-fab.is-docked { display: none !important; }
/* 1.1.4：サイトの「♡ 行きたい」追従（.hm-save-dock、赤いピル）の左端に「💬 書く」を入れて1つにまとめる */
.hm-save-dock .hmk-dockbtn { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; min-height: 44px; margin: 0; padding: 0 10px 0 14px; border: 0; border-right: 1px solid rgba(255, 255, 255, .4); border-radius: 999px 0 0 999px; background: transparent; color: #fff; font: inherit; font-size: 14px; font-weight: 900; line-height: 1; cursor: pointer; }
.hm-save-dock .hmk-dockbtn[hidden] { display: none !important; }
.hm-save-dock .hmk-dockbtn:focus-visible { outline: 3px solid #ffbf47; outline-offset: -3px; }
.hm-save-dock .hmk-dockbtn:not([hidden]) + .hm-save-dock__toggle { border-radius: 0; padding-left: 10px; }
/* 1.2.3：「💬」だけでは何のボタンか分からない（2026-10-24 本人「コメントと表示した方がいいのでは？」）。ラベルは常に出し、狭い時は save_list.php の is-compact が「♡ 行きたい」と件数を縮めて収める（375px幅で220px、目次と上へボタンの間に収まるのを実測） */
.hm-save-dock .hmk-dockbtn__label { font-size: 13px; }
.hm-save-dock.is-compact .hmk-dockbtn { padding: 0 8px 0 12px; }
@media (min-width: 900px) { .hmk-fab { display: none; } }

/* 1.2.2：本文のすぐ後のワンタップの入口 */
.hmk-start { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: linear-gradient(135deg, #fff4ec, #fff8e6); border: 1px solid #ffd2b5; }
.hmk .hmk-start__q, .hmk-start__q { margin: 0 0 8px !important; font-size: 15px; font-weight: 800; color: #3d2410; line-height: 1.5; }
.hmk-start__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.hmk-start__btn { min-height: 44px; margin: 0; padding: 6px 4px; border: 1px solid #ffc7a3; border-radius: 10px; background: #fff; color: #7a2e00; font: inherit; font-size: 14px; font-weight: 800; line-height: 1.3; cursor: pointer; }
.hmk-start__btn:active { transform: translateY(1px); }
.hmk-start__btn:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }
@media (max-width: 380px) { .hmk-start__row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* 記事冒頭の帯 */
.hmk-teaser {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 12px;
	margin: 0 0 20px;
	padding: 10px 14px;
	border: 1px solid #f5d9c6;
	border-radius: 12px;
	background: linear-gradient(90deg, #fff4ec, #fffaf0);
	color: #1d2a30 !important;
	font-size: 13.5px;
	line-height: 1.6;
	text-decoration: none !important;
}
.hmk-teaser__stats { font-weight: 800; }
.hmk-teaser__quote { flex: 1 1 220px; min-width: 0; color: #5b6b72; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hmk-teaser__cta { margin-left: auto; color: #d2461a; font-weight: 800; white-space: nowrap; }

/* みんなの声（ショートコード・ウィジェット） */
.hmk-voices { margin: 16px 0; }
.hmk-voices__title { margin: 0 0 10px; font-size: 17px; font-weight: 800; }
.hmk-voices__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); align-items: start; gap: 10px; margin: 0; padding: 0; list-style: none; }
.widget .hmk-voices__list, .l-sidebar .hmk-voices__list { grid-template-columns: 1fr; }
.hmk-voice { margin: 0; padding: 0; list-style: none; }
.hmk-voice::before { display: none; }
.hmk-voice__link {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid #e3e9ec;
	border-radius: 14px;
	background: #fff;
	color: #1d2a30 !important;
	text-decoration: none !important;
	transition: box-shadow .2s, transform .2s;
}
.hmk-voice__link:hover { box-shadow: 0 6px 20px rgba(23, 60, 72, .12); transform: translateY(-2px); }
.hmk-voice__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.hmk-voice__body { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px 12px; }
.hmk-voice__text { font-size: 14px; font-weight: 700; line-height: 1.6; }
.hmk-voice__who { font-size: 12px; color: #24606f; font-weight: 700; }
.hmk-voice__post { font-size: 12px; color: #5b6b72; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

@media (max-width: 560px) {
	.hmk-photo-row .hmk-photo-btn { flex: 1 1 100%; }
	.hmk-voices__list { grid-template-columns: 1fr 1fr; }
	.hmk-voice__text { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
	.hmk-fab, .hmk-link-card { animation: none !important; }
}

/* 1.2.5：入口の「行きたい」を押した状態（♡ 行きたい保存済み）で表示 */
.hmk-start__btn.is-on { background: #ff6b3d; border-color: #ff6b3d; color: #fff; }
