/**
 * カタログ物件カード（新着・注目）
 * HTML: themes/minolink/parts/property-catalog-card.html
 */

.minolink-property-catalog-card-item {
	margin: 0;
	padding: 0;
	min-width: 0;
}

.minolink-property-catalog-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--normal);
	background: var(--wp--preset--color--base);
	box-shadow: var(--wp--custom--shadow--card);
}

.minolink-property-catalog-card__media-wrap {
	position: relative;
	flex-shrink: 0;
}

.minolink-property-catalog-card__media {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background-color: var(--wp--preset--color--gray-200);
}

/* ::before のロゴ プレースホルダーは components/media-placeholder.css 側で定義 */

.minolink-property-catalog-card__thumb {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* お気に入りボタン本体・hidden 状態は components/property-card-favorite.css */
/* （catalog のアイコンサイズは共通 CSS の既定値 30px を使用） */

.minolink-property-catalog-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 12px;
	padding: var(--wp--preset--spacing--30);
	min-width: 0;
}

.minolink-property-catalog-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: var(--wp--custom--font-weight--semibold);
	display: -webkit-box;
	overflow: hidden;
	min-height: 2lh;
	overflow-wrap: anywhere;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.minolink-property-catalog-card__title a,
.minolink-property-catalog-card__title-text {
	color: inherit;
	text-decoration: none;
}

.minolink-property-catalog-card__title a:hover {
	text-decoration: underline;
}

.minolink-property-catalog-card__title a.is-market-sold-link:hover {
	text-decoration: none;
}

.minolink-property-catalog-card__badges {
	margin: 0;
}

.minolink-property-catalog-card__badges[hidden] {
	display: none;
}

.minolink-property-catalog-card__badges-inner {
	display: flex;
	flex-wrap: wrap;
	gap:8px;
}

.minolink-property-catalog-card .minolink-property-badge {
	padding: 4px 8px;
	border: none;
	border-radius: var(--wp--custom--radius--full);
	font-size: var(--wp--preset--font-size--xx-small);
	font-weight: var(--wp--custom--font-weight--regular);
	line-height: 1;
	white-space: nowrap;
}

/* API color なし時のみ（property-badge.css のフォールバック） */
.minolink-property-catalog-card .minolink-property-badge:not([style*='background-color']) {
	background-color: var(--wp--preset--color--gray-300);
	color: var(--wp--preset--color--contrast);
}

.minolink-property-catalog-card__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 5px;
	margin-top: auto;
}

.minolink-property-catalog-card__price {
	display: inline-flex;
	flex: 0 0 auto;
	flex-wrap: wrap;
	align-items: baseline;
	margin: 0;
	font-family: "Roboto", var(--minolink-font-family);
	font-size: 20px;
	font-weight: var(--wp--custom--font-weight--bold);
	line-height: 1;
}

/* 億・万円のみ小さく（数字は親の 20px bold のまま） */
.minolink-property-catalog-card__price-unit {
	font-size: 11px;
	font-weight: var(--wp--custom--font-weight--semibold);
	line-height: 1;
}

.minolink-property-catalog-card__yield {
	display: flex;
	flex: 1 1 0;
	min-width: 130px;
	max-width: 150px;
	align-items: baseline;
	justify-content: center;
	gap: 2px;
	padding: 6px;
	border-radius: 6px;
	background-color: var(--wp--preset--color--gray-100);
	color: var(--wp--preset--color--primary);
	white-space: nowrap;
}

.minolink-property-catalog-card__yield[hidden] {
	display: none;
}

.minolink-property-catalog-card__yield-label {
	font-size: var(--wp--preset--font-size--xx-small);
	font-weight: var(--wp--custom--font-weight--semibold);
	line-height: 1;
	color: var(--wp--preset--color--contrast);
}

.minolink-property-catalog-card__yield-value {
	display: inline-flex;
	align-items: baseline;
	gap: 0.1em;
	font-family: "Roboto", var(--minolink-font-family);
	font-size: 20px;
	font-weight: var(--wp--custom--font-weight--bold);
	line-height: 1;
}

.minolink-property-catalog-card__yield-value-unit {
	font-family: "Roboto", var(--minolink-font-family);
	font-size: 14px;
	font-weight: var(--wp--custom--font-weight--bold);
	line-height: 1;
}

/* トップ帯（新着＝グリッド / 注目＝横スクロール） */

/* 新着物件: 列数可変グリッド */
.minolink-property-catalog-list--strip {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: var(--wp--preset--spacing--30);
}

.minolink-property-catalog-list--strip .minolink-property-catalog-card-item {
	height: 100%;
}

.minolink-property-catalog-list--strip .minolink-property-catalog-card {
	height: 100%;
}

/* カタログカード帯（注目・新着・最近見た・お気に入り）: ホバーで primary 枠 4px（outline） */
:is(
		.minolink-top-properties-featured,
		.minolink-top-properties-new,
		.minolink-recently-viewed-strip,
		.minolink-favorites-strip
	)
	.minolink-property-catalog-card {
	outline: 4px solid transparent;
	outline-offset: 0;
	transition: outline-color 0.2s ease;
}

@media (hover: hover) {
	:is(
			.minolink-top-properties-featured,
			.minolink-top-properties-new,
			.minolink-recently-viewed-strip,
			.minolink-favorites-strip
		)
		.minolink-property-catalog-card:hover {
		outline-color: var(--wp--preset--color--primary, #358f6b);
	}
}

/* トップ新着・マイページ帯など。お気に入り／最近見たは各 page CSS の padding-block で上下を取る */
.minolink-property-card-strip__heading {
	margin-block-end: var(--wp--preset--spacing--50);
}

/* 読み込み中・エラー（見出しと同じ列の左上に揃える） */
.minolink-property-card-strip__status {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	margin-block-end: var(--wp--preset--spacing--30);
}

/* 空メッセージ: 余白なし（フォールバック見出しとの spacing は empty-fallback 側で確保） */
.minolink-property-card-strip__empty {
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 0;
}

.minolink-property-card-strip__empty p {
	margin: 0;
	padding: 0;
}

/* お気に入り／最近見たが空のとき: 空メッセージ直下におすすめ or 注目 */
.minolink-property-card-strip__empty-fallback[hidden] {
	display: none !important;
}

.minolink-property-card-strip__empty-fallback {
	margin-block-start: var(--wp--preset--spacing--50);
}

.minolink-property-card-strip__empty-fallback-heading {
	margin-block: 0 var(--wp--preset--spacing--50);
}

.minolink-property-card-strip__empty-fallback-heading .wp-block-heading {
	margin: 0;
}

/* 帯フッター: 一覧（badge_name フィルター）— リスト直下 spacing--50・右寄せ */
.minolink-property-card-strip__more,
.wp-block-group.minolink-property-card-strip__more {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	margin-block-start: var(--wp--preset--spacing--50);
	box-sizing: border-box;
}

/* カード帯 → もっと見る: リスト下にも spacing--50（WP global の margin リセット対策） */
.minolink-property-card-strip [data-property-card-list],
.minolink-property-card-strip [data-empty-fallback-list] {
	margin-block-end: var(--wp--preset--spacing--50);
}

/* 新着: content 列（1000px / SP 左右 40px）。もっと見るは下記トップ共通ルール */
.minolink-top-properties-new .minolink-property-card-strip__heading,
.minolink-top-properties-new .minolink-property-card-strip__status,
.minolink-top-properties-new .minolink-property-catalog-list--strip {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--content-size);
	margin-inline: auto;
	padding-inline: 40px;
}

/* 注目スライダー: outline 4px 分の padding-block-start と見出し margin を相殺して spacing--50 を維持 */
.minolink-top-properties-featured .minolink-pattern-heading.minolink-property-card-strip__heading {
	margin-block-end: calc(var(--wp--preset--spacing--50) - 4px);
}

/* 新着グリッド: WP block margin リセット対策で見出し下 spacing--50 を明示 */
.minolink-top-properties-new .minolink-pattern-heading.minolink-property-card-strip__heading {
	margin-block-end: var(--wp--preset--spacing--50);
}

@media (min-width: 1280px) {
	.minolink-top-properties-new .minolink-property-card-strip__heading,
	.minolink-top-properties-new .minolink-property-card-strip__status,
	.minolink-top-properties-new .minolink-property-catalog-list--strip {
		min-width: var(--wp--style--global--content-size);
		padding-inline: 0;
	}
}

/* 注目: 読み込み中・エラーは見出しと同じ wide 列 */
.minolink-top-properties-featured .minolink-property-card-strip__status {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: 24px;
}

@media (min-width: 1280px) {
	.minolink-top-properties-featured .minolink-property-card-strip__status {
		min-width: var(--wp--style--global--wide-size);
		padding-inline: 0;
	}
}

/* トップ各セクション「もっと見る」: wide 列・右 inset 40px で全 BP 右端揃え */
.minolink-top-properties-featured .minolink-property-card-strip__more,
.minolink-top-properties-new .minolink-property-card-strip__more,
.minolink-top-column__more {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	margin-block-start: var(--wp--preset--spacing--50);
	padding-inline-end: 40px;
}

@media (min-width: 1280px) {
	.minolink-top-properties-featured .minolink-property-card-strip__more,
	.minolink-top-properties-new .minolink-property-card-strip__more,
	.minolink-top-column__more {
		min-width: var(--wp--style--global--wide-size);
	}
}

/* 注目物件: 横スクロール（右にはみ出し）。バー非表示・マウスドラッグ＋慣性 */
.minolink-property-catalog-list--slider {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--wp--preset--spacing--40);
	box-sizing: border-box;
	/* overflow-y:hidden で outline が切れるため上余白（見出し下 spacing--50 は front-page-critical で相殺） */
	padding-block-start: 4px;
	padding-block-end: 6px;
	padding-inline-start: 6px;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scroll-behavior: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
	touch-action: pan-x;
	cursor: grab;
}

.minolink-property-catalog-list--slider::-webkit-scrollbar {
	display: none;
}

.minolink-property-catalog-list--slider.is-drag-scroll-dragging {
	cursor: grabbing;
	user-select: none;
	scroll-snap-type: none;
}

.minolink-property-catalog-list--slider.is-drag-scroll-dragging a {
	cursor: grabbing;
}

.minolink-property-catalog-list--slider img {
	-webkit-user-drag: none;
	user-select: none;
}

/* スライダーのみ右へはみ出し（見出しは wide 1280px 列） */
.minolink-top-properties-featured .minolink-property-catalog-list--slider {
	margin-inline-start: 24px;
	margin-inline-end: calc(50% - 50vw);
	padding-inline-end: calc(6px + 50vw - 50%);
}

@media (min-width: 1280px) {
	.minolink-top-properties-featured .minolink-property-catalog-list--slider {
		/* 見出しと同じ wide 列の左端から */
		margin-inline-start: max(0px, calc((100vw - var(--wp--style--global--wide-size)) / 2));
	}
}

.minolink-property-catalog-list--slider .minolink-property-catalog-card-item {
	flex: 0 0 clamp(260px, 78vw, 300px);
	width: clamp(260px, 78vw, 300px);
	max-width: none;
	height: auto;
}

.minolink-property-catalog-list--slider .minolink-property-catalog-card {
	height: 100%;
}
