@charset "UTF-8";
/**
 * 口コミ投稿フォームページ（/review/）
 *
 * - PC版（SP は別途実装予定）
 * - 単位は rem 原則（border のみ px 可）
 * - 業者カードのロゴ枠は「高さ固定 / 幅は素材に応じて柔軟」（object-fit: contain）
 *   → 全カードの高さを揃えつつ、画像のアスペクト比を保つ
 */

/* SWELLのl-contentを非表示（padding/marginによる余白を消す） */
#content.l-content {
	display: none;
}

/* ========================================
 * ベース
 * ======================================== */
.page-review {
	background: #f9fafb;
	color: #1a1a1a;
	font-family: 'Noto Sans JP', 'YuGothic', sans-serif;
}

.page-review *,
.page-review *::before,
.page-review *::after {
	box-sizing: border-box;
}

/* ========================================
 * ヒーロー
 * ======================================== */
.page-review__hero {
	background: #e0f0ff;
	padding: 3rem 5rem;
}

.page-review__hero-inner {
	max-width: 75rem; /* 1200px */
	margin: 0 auto;
}

.page-review__hero-title {
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-weight: 700;
	font-size: 2.5rem;
	line-height: 1;
	letter-spacing: 0;
	margin: 0;
	color: #000;
}

/* ========================================
 * Amazonギフトキャンペーン
 * ======================================== */
.page-review__amazongift {
	background-image: url('../images/amazongift_back_pc.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 2.5rem 5rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.page-review__amazongift-inner {
	width: 100%;
	max-width: 75rem; /* 1200px */
	text-align: center;
}

.page-review__amazongift-text {
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-weight: 700;
	font-size: 2rem; /* 32px */
	line-height: 1.4;
	color: #1a1a1a;
	margin: 0;
}

.page-review__amazongift-amount {
	color: #ff8a00;
}

/* ========================================
 * 本体ラッパー
 * ======================================== */
.page-review__body {
	background: #f1f5f9;
	padding: 2.5rem 0;
}

/* ========================================
 * 検索
 * ======================================== */
.page-review__search {
	display: flex;
	justify-content: center;
	padding: 0 1.25rem;
}

.page-review__search-wrap {
	width: 100%;
	max-width: 45rem; /* 720px */
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.page-review__search-label {
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: #000;
	margin: 0;
	line-height: 1.4;
}

.page-review__search-box {
	display: flex;
	align-items: stretch;
	background: #fff;
	border: 1px solid #006dff;
	border-radius: 0.25rem;
	overflow: hidden;
}

.page-review__search-input-wrap {
	flex: 1 0 0;
	min-width: 0;
	display: flex;
	align-items: center;
	padding: 1rem 1.125rem;
}

.page-review__search-input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	color: #1a1a1a;
	width: 100%;
	padding: 0;
	line-height: 1.2;
}

.page-review__search-input::placeholder {
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-weight: 500;
	color: #6b7280;
}

.page-review__search-btn {
	flex-shrink: 0;
	background: #006dff;
	color: #fff;
	border: none;
	cursor: pointer;
	padding: 1rem 2rem;
	font-size: 0.875rem;
	font-weight: 700;
	font-family: inherit;
	line-height: 1.2;
	transition: opacity 0.15s ease;
}

.page-review__search-btn:hover {
	opacity: 0.85;
}

/* サジェスト（候補表示） */
.page-review__suggest {
	position: absolute;
	top: calc(100% + 0.25rem);
	left: 0;
	right: 0;
	z-index: 10;
	margin: 0;
	padding: 0.25rem 0;
	list-style: none;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 0.5rem;
	box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
	max-height: 22rem;
	overflow-y: auto;
}

.page-review__suggest[hidden] {
	display: none;
}

.page-review__suggest-item {
	margin: 0;
}

.page-review__suggest-link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.625rem 1rem;
	color: #1a1a1a;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.page-review__suggest-link:hover,
.page-review__suggest-link:focus-visible {
	background: #f1f5f9;
	outline: none;
}

.page-review__suggest-logo {
	flex-shrink: 0;
	width: 2.5rem;
	height: 2rem;
	background: #fff;
	border-radius: 0.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.page-review__suggest-logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.page-review__suggest-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}

.page-review__suggest-service {
	font-size: 0.875rem;
	font-weight: 500;
	color: #1a1a1a;
	line-height: 1.4;
}

.page-review__suggest-company {
	font-size: 0.75rem;
	color: #6b7280;
	line-height: 1.4;
}

.page-review__suggest-empty {
	padding: 0.75rem 1rem;
	font-size: 0.875rem;
	color: #6b7280;
	text-align: center;
}

/* ========================================
 * 業者一覧グリッド
 * ======================================== */
.page-review__grid-section {
	padding: 2.5rem 1.25rem;
}

.page-review__grid-inner {
	max-width: 75rem; /* 1200px */
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.page-review__grid-heading {
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-weight: 700;
	font-size: 2rem;
	line-height: 1;
	color: #1a1a1a;
	margin: 0;
}

.page-review__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1rem;
}

.page-review__card {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 0.5rem;
	overflow: hidden;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.page-review__card:hover {
	border-color: #006dff;
	box-shadow: 0 0.25rem 0.75rem rgba(0, 109, 255, 0.12);
}

.page-review__card-link {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	padding: 1rem;
	color: inherit;
	text-decoration: none;
}

/* ロゴ枠：高さ固定（5rem）／横は素材の比率で柔軟。
   外側ボックスはカード幅いっぱい（=カード高さを揃える）、
   内側 img は max-w/h + object-fit:contain で素材アスペクト比をそのまま使う */
.page-review__card-logo {
	width: 100%;
	height: 5rem;
	margin: 0;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.page-review__card-logo-img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

.page-review__card-logo-placeholder {
	font-size: 0.6875rem;
	color: #999;
	font-family: inherit;
}

.page-review__card-name {
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.4;
	color: #1a1a1a;
	margin: 0;
	word-break: break-word;
}

.page-review__empty {
	font-size: 1rem;
	color: #6b7280;
	text-align: center;
	padding: 2rem 0;
	margin: 0;
}

/* ========================================
 * 注意事項
 * ======================================== */
.page-review__notice {
	padding: 0 1.25rem 2.5rem;
}

.page-review__notice-inner {
	max-width: 75rem; /* 1200px */
	margin: 0 auto;
}

.page-review__notice-card {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 0.5rem;
	padding: 2rem 1rem; /* 32px 16px */
	display: flex;
	flex-direction: column;
	gap: 0.625rem; /* 10px */
}

.page-review__notice-title {
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-size: 1.25rem; /* 20px */
	font-weight: 500;
	line-height: 1;
	color: #000;
	margin: 0;
	text-align: center;
}

.page-review__notice-body {
	padding: 1rem 0;
	font-family: 'YuGothic', 'Noto Sans JP', sans-serif;
	font-size: 1rem; /* 16px */
	font-weight: 500;
	line-height: 1.8;
	color: #000;
}

.page-review__notice-body p {
	margin: 0;
}

.page-review__notice-block + .page-review__notice-block {
	margin-top: 1em;
}

/* 無限スクロール用センチネル（PCでは非表示） */
.page-review__sentinel {
	display: none;
}

/* ========================================
 * SP（959px以下）
 * - グリッドは2列
 * - デフォルト10件、IntersectionObserver で次の10件を表示
 * ======================================== */
@media (max-width: 959px) {

	.page-review__hero {
		padding: 1.875rem 1.25rem;
	}

	.page-review__hero-title {
		font-size: 1.75rem;
	}

	/* Amazonギフトキャンペーン（SP） */
	.page-review__amazongift {
		background-image: url('../images/amazongift_back_sp.png');
		padding: 1.875rem 1.25rem;
	}

	.page-review__amazongift-text {
		font-size: 1.375rem; /* 22px */
	}

	.page-review__body {
		padding: 1.25rem 0;
	}

	/* 検索 */
	.page-review__search {
		padding: 0 1.25rem;
	}

	.page-review__search-wrap {
		max-width: none;
		gap: 0.5rem;
	}

	.page-review__search-input-wrap {
		padding: 0.75rem 0.875rem;
	}

	.page-review__search-btn {
		padding: 0.875rem 1.375rem;
	}

	/* 業者一覧 */
	.page-review__grid-section {
		padding: 1.875rem 1.25rem;
	}

	.page-review__grid-inner {
		gap: 1rem;
	}

	.page-review__grid-heading {
		font-size: 1.25rem;
	}

	.page-review__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.25rem 0.75rem;
	}

	.page-review__card-link {
		gap: 0.5rem;
		padding: 0.75rem;
	}

	.page-review__card-logo {
		height: 4.375rem;
	}

	/* 注意事項（SP） */
	.page-review__notice {
		padding: 0 1.25rem 1.875rem;
	}

	.page-review__notice-card {
		padding: 1rem; /* 16px */
	}

	.page-review__notice-title {
		font-size: 1rem; /* 16px */
	}

	.page-review__notice-body {
		padding: 0;
	}

	/* 11件目以降は初期非表示。
	   JS が is-sp-shown を付与した順に表示する */
	.page-review__grid > .page-review__card:nth-child(n+11):not(.is-sp-shown) {
		display: none;
	}

	/* センチネル：JS が動いていれば 10件以降の出現を観測する。
	   高さを持たせて IntersectionObserver の対象にする */
	.page-review__sentinel {
		display: block;
		width: 100%;
		height: 1px;
		margin-top: 1.25rem;
	}

	.page-review__sentinel[hidden] {
		display: none;
	}
}
