/*
 * 英語キャンプ検索の見た目。
 * 色・書体・余白・角丸は、下の「見た目の値」だけで決めている。
 * デザインを作り替えるときは、この値（または、このファイル全体）を差し替える。
 * 絞り込みの仕組み（camp-search.js）と登録データには手を入れなくてよい。
 */

.gcs {
	/* 見た目の値（ブログの配色に合わせている） */
	--gcs-ink: #43342a;
	--gcs-sub: #7a6654;
	--gcs-line: #e3c3ca;
	--gcs-surface: #fff;
	--gcs-cream: #fdf2f2;
	--gcs-paper: #fffcfc;
	--gcs-pink: #e07487;
	--gcs-pink-deep: #b8445f;
	--gcs-link: #0b6d6d;
	--gcs-on-dark: #fff;
	--gcs-radius: 12px;
	--gcs-radius-s: 8px;
	--gcs-shadow: 0 3px 0 rgba(67, 52, 42, 0.14);
	--gcs-gap: 14px;
	--gcs-font-size: 15px;

	color: var(--gcs-ink);
	font-size: var(--gcs-font-size);
	line-height: 1.7;
}

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

.gcs [hidden] {
	display: none !important;
}

.gcs p {
	margin: 0;
}

.gcs-pr {
	margin-bottom: var(--gcs-gap) !important;
	font-size: 12px;
	line-height: 1.4;
}

.gcs-pr__badge {
	display: inline-block;
	padding: 2px 12px;
	border: 1px solid rgba(51, 51, 51, 0.7);
	border-radius: 2px;
	background-color: rgba(255, 255, 255, 0.9);
}

/* 条件パネル */
.gcs-panel {
	padding: 6px 18px 12px;
	border: 2px solid var(--gcs-line);
	border-radius: var(--gcs-radius);
	background: var(--gcs-surface);
	box-shadow: var(--gcs-shadow);
}

.gcs-row {
	display: flex;
	gap: var(--gcs-gap);
	padding: 12px 0;
	border-bottom: 1px solid var(--gcs-line);
}

.gcs-row__label {
	flex: none;
	width: 88px;
	padding-top: 7px;
	font-weight: 700;
}

.gcs-row__body {
	flex: 1;
	min-width: 0;
}

.gcs-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gcs .gcs-chip {
	margin: 0;
	padding: 7px 15px;
	border: 1px solid var(--gcs-line);
	border-radius: 999px;
	background: #fff;
	box-shadow: none;
	color: var(--gcs-ink);
	font: inherit;
	line-height: 1.4;
	white-space: nowrap;
	cursor: pointer;
}

.gcs .gcs-chip:hover {
	border-color: var(--gcs-pink);
}

.gcs .gcs-chip[aria-pressed="true"] {
	border-color: var(--gcs-ink);
	background: var(--gcs-ink);
	color: var(--gcs-on-dark);
	font-weight: 700;
}

.gcs .gcs-chip.is-zero {
	border-style: dashed;
	background: transparent;
	color: #b7a79b;
}

.gcs-chip:focus-visible,
.gcs-btn:focus-visible,
.gcs-past__toggle:focus-visible,
.gcs-more summary:focus-visible {
	outline: 2px solid var(--gcs-link);
	outline-offset: 2px;
}

.gcs-zero-note {
	margin-top: 8px !important;
	font-size: 12px;
	color: var(--gcs-sub);
}

.gcs-more {
	padding-top: 12px;
}

.gcs-more summary {
	font-weight: 700;
	cursor: pointer;
}

.gcs-more .gcs-row:last-child {
	border-bottom: 0;
	padding-bottom: 4px;
}

/* 選択中の条件 */
.gcs-selected {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-top: var(--gcs-gap);
	font-size: 14px;
}

.gcs .gcs-selected__item {
	margin: 0;
	padding: 4px 12px;
	border: 1px solid var(--gcs-line);
	border-radius: 999px;
	background: #fff;
	color: var(--gcs-ink);
	font: inherit;
	cursor: pointer;
}

.gcs .gcs-selected__clear {
	margin: 0 0 0 6px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--gcs-sub);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* 件数と並び替え */
.gcs-status {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--gcs-gap);
	margin: 22px 0 6px;
}

.gcs .gcs-count {
	padding-left: 12px;
	border-left: 8px solid var(--gcs-pink);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.4;
}

.gcs-count small {
	font-size: 13px;
	font-weight: 400;
	color: var(--gcs-sub);
}

.gcs-sort {
	font-size: 13px;
	color: var(--gcs-sub);
}

.gcs-sort select {
	margin-left: 4px;
	padding: 5px 8px;
	border: 1px solid var(--gcs-line);
	border-radius: var(--gcs-radius-s);
	background: #fff;
	color: var(--gcs-ink);
	font: inherit;
}

/* グループの見出し */
.gcs .gcs-group {
	margin: 18px 0 12px;
	padding: 4px 0 6px 12px;
	border-left: 8px solid var(--gcs-pink);
	border-bottom: 2px solid var(--gcs-line);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
}

.gcs .gcs-group__note {
	margin: -4px 0 12px;
	font-size: 13px;
	color: var(--gcs-sub);
}

/* カード */
.gcs-card {
	margin: 0 0 16px;
	padding: 18px 20px;
	border: 1px solid var(--gcs-line);
	border-radius: var(--gcs-radius);
	background: var(--gcs-surface);
	box-shadow: var(--gcs-shadow);
}

/* カードの頭：小さな写真（あれば）と、場所・名前・ラベル */
.gcs-card__head.has-thumb .gcs-card__tags {
	margin-bottom: 0;
}

.gcs-card__head.has-thumb {
	display: flex;
	gap: 18px;
	align-items: center;
	margin-bottom: 14px;
}

.gcs-card__headtext {
	flex: 1;
	min-width: 0;
}

.gcs .gcs-card__thumb {
	flex: none;
	width: 240px;
	height: auto;
	aspect-ratio: 16 / 9;
	margin: 0;
	border: 1px solid var(--gcs-line);
	border-radius: var(--gcs-radius-s);
	object-fit: cover;
}

/* 上の1行：場所と時期 */
.gcs .gcs-card__where {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	margin-bottom: 4px;
	font-size: 13px;
	color: var(--gcs-sub);
}

.gcs-card__place + .gcs-card__when::before {
	content: "｜";
	margin-right: 10px;
	color: var(--gcs-line);
}

.gcs .gcs-card__title {
	margin: 0 0 8px;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.5;
}

.gcs-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 12px;
	font-size: 12px;
	line-height: 1.7;
}

.gcs-tag {
	padding: 1px 10px;
	border: 1px solid var(--gcs-line);
	border-radius: 999px;
	background: var(--gcs-surface);
}

.gcs-tag--status {
	border-color: var(--gcs-sub);
	background: var(--gcs-sub);
	color: var(--gcs-on-dark);
	font-size: 11px;
	font-weight: 700;
}

.gcs-tag--benefit {
	border-color: var(--gcs-pink);
	background: var(--gcs-cream);
	font-weight: 700;
}

/* 要点（左）と、料金・ボタン（右） */
.gcs-card__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 230px;
	gap: 20px;
	align-items: start;
}

.gcs-facts {
	margin: 0;
	padding: 0;
	border: 0;
	border-top: 1px solid var(--gcs-line);
}

.gcs-facts__row {
	display: flex;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid var(--gcs-line);
}

.gcs .gcs-facts dt {
	flex: none;
	width: 84px;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font-size: 13px;
	font-weight: 400;
	color: var(--gcs-sub);
	text-align: left;
}

.gcs .gcs-facts dd {
	flex: 1;
	min-width: 0;
	margin: 0;
	padding: 0;
	font-weight: 700;
	line-height: 1.6;
	text-align: left;
}

.gcs .gcs-facts__row.is-unknown dd {
	font-weight: 400;
	color: var(--gcs-sub);
}

.gcs-card__side {
	padding: 14px;
	border-radius: var(--gcs-radius-s);
	background: var(--gcs-cream);
}

.gcs .gcs-price {
	margin-bottom: 12px;
	line-height: 1.4;
}

.gcs-price__label {
	display: block;
	font-size: 12px;
	color: var(--gcs-sub);
}

.gcs-price__main {
	display: block;
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.01em;
}

.gcs-price__note {
	display: block;
	margin-top: 2px;
	font-size: 12px;
	color: var(--gcs-sub);
}

.gcs-card__btns {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gcs .gcs-btn {
	display: block;
	margin: 0;
	padding: 11px 12px;
	border: 1px solid var(--gcs-line);
	border-radius: var(--gcs-radius-s);
	background: var(--gcs-surface);
	box-shadow: var(--gcs-shadow);
	color: var(--gcs-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.gcs .gcs-btn--main,
.gcs a.gcs-btn--main:hover {
	border-color: var(--gcs-link);
	background: var(--gcs-link);
	color: var(--gcs-on-dark);
}

.gcs .gcs-btn:not(.gcs-btn--main)::after {
	content: " ›";
}

.gcs .gcs-btn:hover {
	opacity: 0.85;
}

.gcs .gcs-card__comment {
	margin-top: 14px;
}

.gcs .gcs-card__benefit {
	margin-top: 14px;
	padding: 10px 12px;
	border: 1px solid var(--gcs-pink);
	border-radius: var(--gcs-radius-s);
	background: var(--gcs-surface);
	font-size: 14px;
}

.gcs-card__benefit-label {
	display: inline-block;
	margin-right: 8px;
	padding: 0 8px;
	border-radius: 4px;
	background: var(--gcs-pink-deep);
	color: var(--gcs-on-dark);
	font-size: 12px;
	font-weight: 700;
}

.gcs .gcs-card__meta {
	margin-top: 12px;
	font-size: 11px;
	color: var(--gcs-sub);
}

/* 過去に開催されたキャンプ（最初は畳む） */
.gcs-past {
	margin-top: 20px;
}

.gcs .gcs-past__toggle {
	display: block;
	width: 100%;
	margin: 0;
	padding: 14px;
	border: 2px dashed var(--gcs-pink);
	border-radius: var(--gcs-radius);
	background: var(--gcs-surface);
	color: var(--gcs-ink);
	font: inherit;
	font-weight: 700;
	text-align: center;
	cursor: pointer;
}

.gcs .gcs-past__toggle::after {
	content: " ▼";
	font-size: 11px;
	color: var(--gcs-pink);
}

.gcs .gcs-past__toggle[aria-expanded="true"]::after {
	content: " ▲";
}

.gcs .gcs-past__toggle:hover {
	border-color: var(--gcs-pink);
}

/* 0件のとき */
.gcs-zero {
	padding: 18px;
	border: 2px solid var(--gcs-line);
	border-radius: var(--gcs-radius);
	background: var(--gcs-surface);
}

.gcs .gcs-zero__title {
	margin-bottom: 6px;
	font-size: 16px;
	font-weight: 700;
}

.gcs .gcs-zero__alt {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	width: 100%;
	margin: 8px 0 0;
	padding: 11px 14px;
	border: 1px solid var(--gcs-line);
	border-radius: var(--gcs-radius-s);
	background: #fff;
	color: var(--gcs-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.gcs-zero__alt b {
	white-space: nowrap;
	color: var(--gcs-link);
}

/* 記事の中の一覧（パネルなし）：件数と並び替えは出さない */
.gcs--plain .gcs-status {
	display: none;
}

/* 早見表（横に並べて比べる表）。ブログの「比較表・横並び」の形に合わせている */
.gcs .gcs-table-hint {
	margin: 18px 0 6px 4px;
	font-size: 12px;
	font-weight: 700;
	color: var(--gcs-sub);
	text-align: left;
}

.gcs-table {
	margin: 0 0 22px;
	border: 2.5px solid var(--gcs-ink);
	border-radius: 14px;
	background: var(--gcs-surface);
	box-shadow: 0 4px 0 rgba(67, 52, 42, 0.13);
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
}

.gcs .gcs-table table {
	width: auto;
	min-width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: var(--gcs-surface);
	table-layout: fixed;
}

.gcs .gcs-table th,
.gcs .gcs-table td {
	width: 142px;
	min-width: 142px;
	padding: 12px 10px;
	border: 0;
	border-right: 2px dashed var(--gcs-line);
	border-bottom: 2px dashed var(--gcs-line);
	background: var(--gcs-surface);
	color: var(--gcs-ink);
	font-size: 14px;
	line-height: 1.55;
	text-align: center;
	vertical-align: middle;
}

.gcs .gcs-table th {
	position: sticky;
	left: 0;
	z-index: 2;
	width: 84px;
	min-width: 84px;
	background: var(--gcs-cream);
	box-shadow: 2px 0 0 var(--gcs-line);
	font-size: 13.5px;
	font-weight: 700;
}

.gcs .gcs-table tr:first-child td,
.gcs .gcs-table tr:first-child th {
	background: var(--gcs-cream);
	font-weight: 700;
}

.gcs .gcs-table tr:last-child td,
.gcs .gcs-table tr:last-child th {
	border-bottom: 0;
}

.gcs .gcs-table tr:last-child td {
	font-weight: 700;
}

.gcs .gcs-table td:last-child {
	border-right: 0;
}

.gcs .gcs-table td a {
	color: var(--gcs-link);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.gcs .gcs-table td a::after {
	content: "\25BC";
	display: inline-block;
	margin-left: 4px;
	font-size: 9px;
	color: var(--gcs-pink);
	vertical-align: 2px;
}

.gcs-card {
	scroll-margin-top: 100px;
}

/* チップの件数 */
.gcs-chip__n {
	margin-left: 1px;
	font-size: 0.86em;
	font-weight: 400;
	opacity: 0.75;
}

/* 件数のかっこは見た目だけ（スマホの3列では、幅を取らないよう外す） */
.gcs-chip__n::before {
	content: "（";
}

.gcs-chip__n::after {
	content: "）";
}

/* 「初心者OK」のラベル */
.gcs-tag--level {
	border-color: var(--gcs-link);
	color: var(--gcs-link);
}

/* 項目の下の段と「くわしく見る」。パソコンと記事の中では、いつも開いたまま */
.gcs-card__facts {
	min-width: 0;
}

.gcs .gcs-card__morebtn {
	display: none;
}

.gcs .gcs-tag--days {
	display: none;
}

.gcs-card__more .gcs-facts {
	border-top: 0;
}

/* テーマが dl につける下の余白を消す（「対象」と「日数」の間があく原因） */
.gcs .gcs-card__facts dl.gcs-facts {
	margin: 0 !important;
	padding: 0 !important;
}

/* スマホ用：画面下の帯 */
.gcs-bar {
	display: none;
}

@media (max-width: 767px) {
	.gcs-panel {
		padding: 4px 14px 10px;
	}

	.gcs-row {
		display: block;
		padding: 10px 0;
	}

	.gcs-row__label {
		width: auto;
		padding: 0 0 6px;
	}

	.gcs .gcs-chip {
		padding: 9px 15px;
	}

	.gcs-card {
		padding: 14px;
	}

	.gcs-card__main {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	/* 条件の欄：見出しを上に置いて、チップを横幅いっぱいに並べる */
	.gcs .gcs-row {
		flex-direction: column;
		gap: 6px;
		padding: 10px 0;
	}

	.gcs .gcs-row__label {
		width: auto;
		padding-top: 0;
		font-size: 13px;
	}

	/* 地域は3列にそろえて並べる（件数つきで幅がばらつくため） */
	.gcs .gcs-row[data-filter="area"] .gcs-chips {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 6px;
	}

	.gcs .gcs-row[data-filter="area"] .gcs-chip {
		padding-left: 2px;
		padding-right: 2px;
		font-size: 12px;
		text-align: center;
		white-space: nowrap;
	}

	.gcs .gcs-row[data-filter="area"] .gcs-chip__n {
		margin-left: 4px;
	}

	.gcs .gcs-row[data-filter="area"] .gcs-chip__n::before,
	.gcs .gcs-row[data-filter="area"] .gcs-chip__n::after {
		content: "";
	}

	/* 検索ページ（絞り込みあり）だけ、下の段を畳む。記事の中の一覧（gcs--plain）は畳まない */
	.gcs:not(.gcs--plain) .gcs-card__more {
		display: none;
	}

	.gcs:not(.gcs--plain) .gcs-card.is-open .gcs-card__more {
		display: block;
	}

	.gcs:not(.gcs--plain) .gcs-card__morebtn {
		display: block;
		width: 100%;
		margin: 8px 0 0;
		padding: 9px 12px;
		border: 1px solid var(--gcs-line);
		border-radius: 999px;
		background: var(--gcs-surface);
		color: var(--gcs-sub);
		font-size: 13px;
		font-weight: 700;
		line-height: 1.4;
		cursor: pointer;
	}

	/* 畳んでいる間は、補足の文も隠す。日数はラベルで見せる */
	.gcs:not(.gcs--plain) .gcs-card:not(.is-open) .gcs-card__meta,
	.gcs:not(.gcs--plain) .gcs-card:not(.is-open) .gcs-card__benefit,
	.gcs:not(.gcs--plain) .gcs-card:not(.is-open) .gcs-card__comment,
	.gcs:not(.gcs--plain) .gcs-card:not(.is-open) .gcs-price__note {
		display: none;
	}

	.gcs:not(.gcs--plain) .gcs-card:not(.is-open) .gcs-tag--days {
		display: inline-block;
	}

	/* スマホ：上の段に絵と「場所・時期」、その下にキャンプ名を横幅いっぱいに大きく、すぐ下にラベル */
	.gcs-card__head.has-thumb {
		display: grid;
		grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
		gap: 10px 12px;
		align-items: center;
		margin-bottom: 12px;
	}

	.gcs-card__head.has-thumb .gcs-card__headtext {
		display: contents;
	}

	.gcs .has-thumb .gcs-card__thumb {
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		max-width: 170px;
	}

	.gcs .has-thumb .gcs-card__where {
		grid-column: 2;
		grid-row: 1;
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		margin: 0;
	}

	.gcs .has-thumb .gcs-card__when::before {
		content: none;
	}

	.gcs .has-thumb .gcs-card__title {
		grid-column: 1 / -1;
		margin: 2px 0 0;
		font-size: 20px;
		line-height: 1.45;
	}

	.gcs-card__head.has-thumb .gcs-card__tags {
		grid-column: 1 / -1;
	}

	/* スマホでは、案内の2つの文を1行ずつに分ける */
	.gcs .gcs-table-hint span {
		display: block;
	}

	.gcs .gcs-table th,
	.gcs .gcs-table td {
		width: 124px;
		min-width: 124px;
		padding: 10px 8px;
		font-size: 13px;
	}

	.gcs .gcs-table th {
		width: 72px;
		min-width: 72px;
		font-size: 12.5px;
	}

	.gcs .gcs-facts dt {
		width: 76px;
	}

	.gcs-price__main {
		font-size: 22px;
	}

	.gcs-bar {
		position: fixed;
		z-index: 50;
		right: 0;
		bottom: 0;
		left: 0;
		display: flex;
		align-items: center;
		gap: 10px;
		padding: 10px 14px;
		border-top: 1px solid var(--gcs-line);
		background: #fff;
		box-shadow: 0 -2px 8px rgba(67, 52, 42, 0.08);
	}

	.gcs-bar .gcs-btn {
		flex: 1;
	}

	.gcs-bar__count {
		flex: none;
		font-weight: 700;
	}

	.gcs.has-bar {
		padding-bottom: 68px;
	}
}

/*
 * ここから下：検索ページ（絞り込みつきの一覧＝ .gcs2 ）の見た目。0.7.0で作り直した部分。
 * 記事の中の一覧（ .gcs--plain ）には効かない。
 * 入口のボタン → 絞り込み画面（スマホは下から、パソコンはまん中）→ 短いカード、の順に並んでいる。
 */

.gcs2 {
	--gcs-soft: 0 2px 12px rgba(67, 52, 42, 0.08);
	--gcs-hair: #f0e2e5;
	--gcs-tagbg: #f6f1ee;
}

/* 検索バー（スマホ） */
.gcs2 .gcs2-search {
	position: sticky;
	top: 8px;
	z-index: 20;
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin: 0;
	padding: 10px 18px;
	border: 1px solid var(--gcs-line);
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--gcs-soft);
	color: var(--gcs-ink);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.gcs2-search__icon {
	flex: none;
	width: 20px;
	height: 20px;
	color: var(--gcs-pink-deep);
}

.gcs2-search__text {
	flex: 1;
	min-width: 0;
}

.gcs2-search__main {
	display: block;
	overflow: hidden;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gcs2-search__sub {
	display: block;
	font-size: 12px;
	line-height: 1.4;
	color: var(--gcs-sub);
}

/* チップ：選択中は濃いピンクの枠＋薄いピンクの地 */
.gcs2 .gcs-chip {
	padding: 9px 16px;
	border-color: var(--gcs-line);
	font-size: 14px;
}

.gcs2 .gcs-chip[aria-pressed="true"] {
	border-color: var(--gcs-pink-deep);
	background: var(--gcs-cream);
	box-shadow: inset 0 0 0 1px var(--gcs-pink-deep);
	color: var(--gcs-pink-deep);
}

.gcs2-sheethead,
.gcs2-sheetfoot,
.gcs2-backdrop {
	display: none;
}

/* 選択中の条件：1か所だけ、×で外せる */
.gcs2 .gcs-selected {
	gap: 8px;
	margin-top: 12px;
}

.gcs2 .gcs-selected > span {
	display: none;
}

.gcs2 .gcs-selected__item {
	padding: 5px 12px;
	border-color: var(--gcs-pink-deep);
	background: var(--gcs-cream);
	color: var(--gcs-pink-deep);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.gcs2 .gcs-selected__clear {
	font-size: 13px;
	white-space: nowrap;
}

/* 件数：数字だけ大きく */
.gcs2 .gcs-status {
	align-items: baseline;
	margin: 18px 2px 10px;
}

.gcs2 .gcs-count {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.gcs2 .gcs2-count {
	font-size: 14px;
	line-height: 1.3;
}

.gcs2-count b {
	margin-right: 2px;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: 0.01em;
}

.gcs2-count small {
	display: block;
	margin-top: 2px;
	font-size: 12px;
	color: var(--gcs-sub);
}

.gcs2 .gcs-sort select {
	padding: 4px 2px;
	border: 0;
	background: transparent;
	font-weight: 700;
}

/* カード：枠と影をやめて、白い面と余白だけ */
.gcs2 .gcs-card {
	margin: 0 0 12px;
	padding: 14px;
	border: 0;
	border-radius: 16px;
	box-shadow: none;
}

.gcs2 .gcs-card__head,
.gcs2 .gcs-card__head.has-thumb {
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 2px 12px;
	align-items: start;
	margin-bottom: 8px;
}

.gcs2 .gcs-card__headtext {
	display: contents;
}

.gcs2 .gcs-card__head:not(.has-thumb)::before {
	content: "";
	grid-column: 1;
	grid-row: 1 / 3;
	aspect-ratio: 16 / 9;
	border-radius: 10px;
	background: var(--gcs-cream);
}

.gcs2 .gcs-card__thumb,
.gcs2 .has-thumb .gcs-card__thumb {
	grid-column: 1;
	grid-row: 1 / 3;
	width: 100%;
	max-width: none;
	border: 0;
	border-radius: 10px;
}

.gcs2 .gcs-card__where,
.gcs2 .has-thumb .gcs-card__where {
	grid-column: 2;
	grid-row: 1;
	flex-direction: row;
	align-items: center;
	gap: 4px 6px;
	margin: 0;
	font-size: 12px;
}

.gcs2 .gcs-card__title,
.gcs2 .has-thumb .gcs-card__title {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	font-size: 16px;
	line-height: 1.45;
}

.gcs2 .gcs-card__tags,
.gcs2 .gcs-card__head.has-thumb .gcs-card__tags {
	grid-column: 1 / -1;
	margin: 8px 0 0;
}

.gcs2 .gcs-tag {
	padding: 1px 8px;
	border: 0;
	border-radius: 5px;
	background: var(--gcs-tagbg);
	color: var(--gcs-sub);
}

.gcs2 .gcs-tag--days {
	display: inline-block;
}

.gcs2 .gcs-tag--level {
	background: #e8f3f3;
	color: var(--gcs-link);
	font-weight: 700;
}

.gcs2 .gcs-tag--benefit {
	background: var(--gcs-cream);
	color: var(--gcs-pink-deep);
}

.gcs2 .gcs-tag--status {
	background: var(--gcs-sub);
	color: #fff;
}

/* 中身：日程と対象は1行にまとめ、表は「くわしく見る」の中へ */
.gcs2 .gcs-card__main {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.gcs2 .gcs-card__facts {
	display: contents;
}

.gcs2 .gcs-card__facts > dl.gcs-facts {
	order: 3;
	display: none;
	margin-top: 12px !important;
	border-top: 1px solid var(--gcs-hair);
}

.gcs2 .gcs-card__more {
	order: 4;
	display: none;
}

.gcs2 .gcs-card.is-open .gcs-card__facts > dl.gcs-facts,
.gcs2 .gcs-card.is-open .gcs-card__more {
	display: block;
}

.gcs2 .gcs-facts__row {
	border-bottom-color: var(--gcs-hair);
	font-size: 14px;
}

.gcs2 .gcs-card__side {
	order: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 8px 12px;
	margin-top: 10px;
	padding: 0;
	background: none;
}

.gcs2 .gcs-price {
	margin: 0;
}

.gcs2 .gcs-price__label {
	display: none;
}

.gcs2 .gcs-price__main {
	font-size: 20px;
}

.gcs2 .gcs-card:not(.is-open) .gcs-price__note,
.gcs2 .gcs-card:not(.is-open) .gcs-card__meta,
.gcs2 .gcs-card:not(.is-open) .gcs-card__benefit,
.gcs2 .gcs-card:not(.is-open) .gcs-card__comment,
.gcs2 .gcs-card:not(.is-open) .gcs-btn:not(.gcs-btn--main) {
	display: none;
}

.gcs2 .gcs-card.is-open .gcs-card__side {
	order: 5;
	margin-top: 14px;
}

.gcs2 .gcs-card.is-open .gcs-card__btns {
	flex: 1 1 100%;
}

.gcs2 .gcs-btn {
	padding: 10px 16px;
	border-radius: 999px;
	box-shadow: none;
	font-size: 13px;
}

.gcs.gcs2 .gcs-card .gcs-card__morebtn {
	order: 6;
	display: block;
	width: 100%;
	margin: 10px 0 0;
	padding: 8px 0 0;
	border: 0;
	border-top: 1px solid var(--gcs-hair);
	border-radius: 0;
	background: none;
	color: var(--gcs-sub);
	font: inherit;
	font-size: 13px;
	cursor: pointer;
}

.gcs2 .gcs-card__morebtn::after {
	content: " ▾";
}

.gcs2 .gcs-card.is-open .gcs-card__morebtn::after {
	content: " ▴";
}

.gcs2 .gcs-card__benefit {
	border: 0;
	background: var(--gcs-cream);
}

/* 過去の開催・0件 */
.gcs2 .gcs-past__toggle {
	border: 1px solid var(--gcs-line);
	border-radius: 999px;
	font-size: 14px;
}

.gcs2 .gcs-group {
	border: 0;
	padding-left: 2px;
}

.gcs2 .gcs-zero {
	border: 0;
	border-radius: 16px;
}

.gcs2 .gcs-bar {
	display: none !important;
}

.gcs2.has-bar {
	padding-bottom: 0;
}

/* パソコン：一覧は2列、絵はカードの上 */
@media (min-width: 768px) {
	.gcs2 .gcs-list,
	.gcs2 .gcs-past__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
		align-items: start;
	}

	.gcs2 .gcs-card {
		margin: 0;
		padding: 16px;
	}

	/* 絵はカードの上に大きく */
	.gcs2 .gcs-card__head,
	.gcs2 .gcs-card__head.has-thumb {
		grid-template-columns: minmax(0, 1fr);
		gap: 2px;
	}

	.gcs2 .gcs-card__thumb,
	.gcs2 .has-thumb .gcs-card__thumb,
	.gcs2 .gcs-card__head:not(.has-thumb)::before {
		grid-column: 1;
		grid-row: auto;
		margin-bottom: 10px;
		border-radius: 12px;
	}

	.gcs2 .gcs-card__where,
	.gcs2 .has-thumb .gcs-card__where,
	.gcs2 .gcs-card__title,
	.gcs2 .has-thumb .gcs-card__title {
		grid-column: 1;
		grid-row: auto;
	}

	.gcs2 .gcs-card__title,
	.gcs2 .has-thumb .gcs-card__title {
		font-size: 17px;
	}
}

.gcs.gcs2 {
	--gcs-accent: #b8445f;
	--gcs-idle: #f5f2f0;
	--gcs-idle-line: #e6e0dc;
	--gcs-off: #8c8179;
}

/* 検索バー：枠はグレーに */
.gcs.gcs2 .gcs2-search {
	display: flex;
	border-color: var(--gcs-idle-line);
}

/* 選択中の条件（検索結果の上）：×で1つずつ外せる */
.gcs.gcs2 .gcs-selected {
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
	overflow: visible;
}

.gcs.gcs2 .gcs-selected .gcs-selected__item {
	display: inline-block;
	padding: 7px 12px;
	border: 0;
	border-radius: 999px;
	background: var(--gcs-accent);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

.gcs.gcs2 .gcs-selected__clear {
	padding: 7px 4px;
	font-size: 13px;
}

/* 絞り込み画面 */
.gcs.gcs2 .gcs-panel {
	position: fixed;
	z-index: 100000;
	right: 0;
	bottom: 0;
	left: 0;
	display: block;
	height: 92%;
	max-height: 92%;
	padding: 0 20px;
	overflow-y: auto;
	border: 0;
	border-radius: 22px 22px 0 0;
	background: #fff;
	box-shadow: none;
	visibility: hidden;
	transform: translateY(105%);
	transition: transform 0.25s ease, visibility 0.25s;
}

.gcs.gcs2.gcs2-open .gcs-panel {
	visibility: visible;
	transform: none;
}

.gcs.gcs2.gcs2-open .gcs2-backdrop {
	position: fixed;
	z-index: 99999;
	inset: 0;
	display: block;
	background: rgba(67, 52, 42, 0.45);
}

.gcs.gcs2 .gcs2-sheethead {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 -20px;
	padding: 16px 20px 12px;
	border-bottom: 1px solid var(--gcs-hair);
	background: #fff;
	font-size: 17px;
	font-weight: 700;
}

.gcs.gcs2 .gcs2-close {
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--gcs-idle);
	color: var(--gcs-ink);
	font-size: 16px;
	cursor: pointer;
}

.gcs.gcs2 .gcs-row {
	display: block;
	padding: 22px 0;
	border-bottom: 1px solid var(--gcs-hair);
}

.gcs.gcs2 .gcs-row__label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	width: auto;
	margin-bottom: 12px;
	padding: 0;
	font-size: 16px;
	font-weight: 700;
}

.gcs2-hint {
	font-size: 12px;
	font-weight: 400;
	color: var(--gcs-sub);
}

.gcs.gcs2 .gcs-zero-note {
	display: none !important;
}

/* ボタン共通 */
.gcs.gcs2 .gcs-chips {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.gcs.gcs2 .gcs-chip {
	min-height: 50px;
	padding: 6px 8px;
	border: 1px solid transparent;
	border-radius: 12px;
	background: var(--gcs-idle);
	box-shadow: none;
	color: var(--gcs-ink);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.3;
	text-align: center;
	white-space: nowrap;
}

.gcs.gcs2 .gcs-chip[aria-pressed="true"] {
	border-color: var(--gcs-accent);
	background: var(--gcs-accent);
	color: #fff;
	font-weight: 700;
}

/* 0件：白地に細いグレーの枠。文字は読める濃さのまま「0件」と添える */
.gcs.gcs2 .gcs-chip[aria-disabled="true"] {
	border: 1px solid var(--gcs-idle-line);
	background: #fff;
	color: var(--gcs-off);
	cursor: default;
}

.gcs.gcs2 .gcs-row:not([data-filter="area"]) .gcs-chip[aria-disabled="true"]::after {
	content: "0件";
	display: block;
	font-size: 11px;
}

/* 学年：4列 */
.gcs.gcs2 .gcs-row[data-filter="grade"] .gcs-chips {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* 地域：2列。左に名前、右に件数 */
.gcs.gcs2 .gcs-row[data-filter="area"] .gcs-chips {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gcs.gcs2 .gcs-row[data-filter="area"] .gcs-chip {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 54px;
	padding: 6px 16px;
	font-size: 16px;
	text-align: left;
}

.gcs.gcs2 .gcs-row[data-filter="area"] .gcs-chip__n {
	margin: 0;
	font-size: 13px;
	font-weight: 400;
	opacity: 1;
}

.gcs.gcs2 .gcs-row[data-filter="area"] .gcs-chip__n::before {
	content: "";
}

.gcs.gcs2 .gcs-row[data-filter="area"] .gcs-chip__n::after {
	content: "件";
}

/* 時期：絵文字つきの3枚 */
.gcs.gcs2 .gcs-row[data-filter="season"] .gcs-chip {
	min-height: 68px;
}

.gcs.gcs2 .gcs-row[data-filter="season"] .gcs-chip::before {
	display: block;
	margin-bottom: 2px;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.2;
}

.gcs.gcs2 .gcs-chip[data-value="spring"]::before {
	content: "✿";
}

.gcs.gcs2 .gcs-chip[data-value="summer"]::before {
	content: "☀";
}

.gcs.gcs2 .gcs-chip[data-value="winter"]::before {
	content: "❄";
}

/* 日数：2列 */
.gcs.gcs2 .gcs-row[data-filter="days"] .gcs-chips {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gcs.gcs2 .gcs2-pad {
	height: 16px;
}

/* 画面下に固定：◯件のキャンプを見る */
.gcs.gcs2 .gcs2-sheetfoot {
	position: sticky;
	bottom: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 -20px;
	padding: 12px 20px 14px;
	border-top: 1px solid var(--gcs-hair);
	background: #fff;
}

.gcs.gcs2 .gcs2-clear {
	margin: 0;
	padding: 10px 2px;
	border: 0;
	background: none;
	color: var(--gcs-ink);
	font: inherit;
	font-size: 15px;
	text-decoration: underline;
	cursor: pointer;
}

.gcs.gcs2 .gcs2-show {
	flex: 1;
	margin: 0;
	padding: 13px 12px;
	border: 0;
	border-radius: 14px;
	background: var(--gcs-accent);
	color: #fff;
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	cursor: pointer;
}

.gcs.gcs2 .gcs2-show b {
	margin-right: 1px;
	font-size: 21px;
}

/* パソコン：同じ画面を、まん中に出る窓として使う */
@media (min-width: 768px) {
	.gcs.gcs2 .gcs2-search {
		max-width: 520px;
	}

	.gcs.gcs2 .gcs-panel {
		top: 50%;
		right: auto;
		bottom: auto;
		left: 50%;
		width: 560px;
		height: auto;
		max-height: 86%;
		padding: 0 28px;
		border-radius: 22px;
		opacity: 0;
		transform: translate(-50%, -48%);
		transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
	}

	.gcs.gcs2.gcs2-open .gcs-panel {
		opacity: 1;
		transform: translate(-50%, -50%);
	}

	.gcs.gcs2 .gcs2-sheethead,
	.gcs.gcs2 .gcs2-sheetfoot {
		margin: 0 -28px;
		padding-left: 28px;
		padding-right: 28px;
	}

	.gcs.gcs2 .gcs-row[data-filter="area"] .gcs-chips {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* 「さらに詳しく」（日数・こだわり）の畳み */
.gcs.gcs2 .gcs2-more > summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 20px 0;
	font-size: 16px;
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

.gcs.gcs2 .gcs2-more > summary::-webkit-details-marker {
	display: none;
}

.gcs.gcs2 .gcs2-more > summary::after {
	content: "";
	flex: none;
	width: 9px;
	height: 9px;
	margin: 0 6px 4px 0;
	border-right: 2px solid var(--gcs-ink);
	border-bottom: 2px solid var(--gcs-ink);
	transform: rotate(45deg);
}

.gcs.gcs2 .gcs2-more[open] > summary::after {
	margin-bottom: -4px;
	transform: rotate(225deg);
}

.gcs2-more__note {
	margin-left: auto;
	font-size: 13px;
	font-weight: 400;
	color: var(--gcs-sub);
}

.gcs2-more__note.is-on {
	color: var(--gcs-accent);
	font-weight: 700;
}

.gcs.gcs2 .gcs2-more__body > .gcs-row:first-child {
	padding-top: 2px;
}

/* 検索バー：1行だけのときは少し低く */
.gcs.gcs2 .gcs2-search {
	min-height: 52px;
}

/* カード：開催地・日程・対象を、いつも同じ位置に同じ順で見せる（40件を見比べやすく） */
.gcs.gcs2 .gcs-card__facts > dl.gcs-facts {
	order: 0;
	display: block;
	margin-top: 2px !important;
	border-top: 0;
}

.gcs.gcs2 .gcs-card__more {
	order: 1;
}

.gcs.gcs2 .gcs-card__side,
.gcs.gcs2 .gcs-card.is-open .gcs-card__side {
	order: 2;
	margin-top: 10px;
}

.gcs.gcs2 .gcs-facts__row {
	gap: 10px;
	padding: 2px 0;
	border-bottom: 0;
	font-size: 14px;
	line-height: 1.55;
}

.gcs.gcs2 .gcs-facts dt {
	width: 62px;
	padding-top: 1px;
	font-size: 12px;
	color: var(--gcs-sub);
}

.gcs.gcs2 .gcs-facts dd {
	font-weight: 400;
}

.gcs.gcs2 .gcs-facts__row:nth-child(2) dd {
	font-weight: 700;
}

.gcs.gcs2 .gcs-card__more .gcs-facts__row:nth-child(2) dd {
	font-weight: 400;
}

.gcs.gcs2 .gcs-card__tags,
.gcs.gcs2 .gcs-card__head.has-thumb .gcs-card__tags {
	margin-top: 10px;
}

/* 条件の説明・0件・カードの並び */

/* 補助の文字を少し濃く、少し大きく */
.gcs.gcs2 {
	--gcs-sub: #6b5848;
	--gcs-off: #7a6f67;
}

/* 条件の名前の下に、選び方の説明を1行で置く */
.gcs.gcs2 .gcs-row__label {
	display: block;
	margin-bottom: 10px;
}

.gcs.gcs2 .gcs2-hint {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	line-height: 1.5;
}

/* 参加の形／宿泊・通学：ほかと同じボタン型で2列 */
.gcs.gcs2 .gcs-row[data-filter="companion"] .gcs-chips,
.gcs.gcs2 .gcs-row[data-filter="form"] .gcs-chips {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* 0件：ボタンの形をやめ、文字だけにする（押せる選択肢に見せない） */
.gcs.gcs2 .gcs-chip[aria-disabled="true"] {
	border-color: transparent;
	background: none;
}

.gcs.gcs2 .gcs-row[data-filter="area"] .gcs-chip[aria-disabled="true"] {
	border-bottom: 1px dotted var(--gcs-idle-line);
	border-radius: 0;
}

/* カード：くわしい情報は、料金とボタンより上に置く */
.gcs.gcs.gcs2 .gcs-card .gcs-card__morebtn {
	order: 1;
	width: auto;
	margin: 6px 0 0;
	padding: 6px 0;
	border-top: 0;
	color: var(--gcs-link);
	font-size: 13px;
	font-weight: 700;
	text-align: left;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gcs.gcs2 .gcs-card__more {
	order: 2;
}

.gcs.gcs2 .gcs-card__side,
.gcs.gcs2 .gcs-card.is-open .gcs-card__side {
	order: 3;
	display: block;
	margin-top: 10px;
	padding-top: 12px;
	border-top: 1px solid var(--gcs-hair);
}

/* 料金：「1人あたり」と分かるようにし、含まれるもの・別にかかるものの補足はいつも見せる */
.gcs.gcs2 .gcs-price {
	margin-bottom: 10px;
}

.gcs.gcs2 .gcs-price__label {
	display: inline;
	margin-right: 8px;
	font-size: 12px;
	color: var(--gcs-sub);
}

.gcs.gcs2 .gcs-price__main {
	display: inline;
	font-size: 22px;
}

.gcs.gcs2 .gcs-card .gcs-price__note,
.gcs.gcs2 .gcs-card:not(.is-open) .gcs-price__note {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--gcs-ink);
}

.gcs.gcs2 .gcs-card__btns .gcs-btn--main {
	padding: 12px 16px;
	font-size: 14px;
}

.gcs.gcs2 .gcs-card.is-open .gcs-card__btns {
	flex: none;
}

/* カードは一律に長くしない。料金と参加資格の「例外」だけを目立つ形で補う */
.gcs.gcs2 .gcs-card__side,
.gcs.gcs2 .gcs-card.is-open .gcs-card__side {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 8px 10px;
	padding-top: 10px;
}

.gcs.gcs2 .gcs-price {
	margin: 0;
}

.gcs.gcs2 .gcs-price__label {
	display: block;
	margin: 0;
	line-height: 1.3;
}

.gcs.gcs2 .gcs-price__main {
	display: block;
	line-height: 1.3;
}

.gcs.gcs2 .gcs-card:not(.is-open) .gcs-price__note {
	display: none;
}

.gcs.gcs2 .gcs-card__btns {
	flex: none;
}

.gcs.gcs2 .gcs-card.is-open .gcs-card__btns {
	flex: 1 1 100%;
}

.gcs.gcs2 .gcs-card__btns .gcs-btn--main {
	min-height: 44px;
	padding: 12px 16px;
	font-size: 13px;
}

.gcs.gcs2 .gcs2-except {
	flex: 1 1 100%;
	order: 5;
	padding: 5px 10px;
	border-radius: 8px;
	background: var(--gcs-cream);
	color: var(--gcs-accent);
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.5;
}

.gcs.gcs2 .gcs-card.is-open .gcs2-except {
	display: none;
}

.gcs.gcs2 .gcs2-cond {
	display: inline-block;
	margin-left: 6px;
	padding: 0 7px;
	border-radius: 5px;
	background: var(--gcs-cream);
	color: var(--gcs-accent);
	font-size: 12px;
	font-weight: 700;
}

/* 「◯件のキャンプを見る」で一覧へ戻るとき、固定のヘッダーに隠れないようにする */
.gcs.gcs2 .gcs2-search {
	scroll-margin-top: 100px;
}

/* 料金とボタンは横に並べる。カードの幅が足りないときだけ、ボタンが下の段で横幅いっぱいになる */
.gcs.gcs2 .gcs-price {
	flex: 0 0 auto;
}

.gcs.gcs2 .gcs-card__btns {
	flex: 1 1 170px;
	max-width: 100%;
}

/* スマホやタブレットでは、画面の上に固定されたメニュー（高さ約90px）の下に入口のボタンを止める */
@media (max-width: 1023px) {
	.gcs.gcs2 .gcs2-search {
		top: 98px;
	}
}

/* 開くときは、すぐに操作できるようにする（閉じるときだけ、動きが終わってから隠す） */
.gcs.gcs2.gcs2-open .gcs-panel {
	transition: transform 0.25s ease, opacity 0.2s, visibility 0s;
}

/* 「◯件のキャンプを見る」で結果の先頭へ戻るとき、固定メニューに隠れないようにする */
.gcs.gcs2 {
	scroll-margin-top: 100px;
}

/* 入口のボタンを目立たせる：左右の中央に置き、虫めがねを濃いピンクの丸にする */
.gcs.gcs2 .gcs2-search {
	max-width: 560px;
	min-height: 62px;
	margin: 0 auto;
	padding: 9px 20px 9px 10px;
	gap: 14px;
	box-shadow: 0 4px 16px rgba(67, 52, 42, 0.14);
}

.gcs.gcs2 .gcs2-search__icon {
	width: 42px;
	height: 42px;
	padding: 11px;
	border-radius: 50%;
	background: var(--gcs-accent);
	color: #fff;
}

.gcs.gcs2 .gcs2-search__main {
	font-size: 17px;
}

/* 並び替え：名前と選ぶ欄を1行に並べる（テーマが選ぶ欄を横幅いっぱいにするのを止める） */
.gcs.gcs2 .gcs-sort {
	display: flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}

.gcs.gcs2 .gcs-sort select {
	display: inline-block;
	width: auto;
	margin: 0;
}

/* 入口のボタンに、濃いピンクの枠を付ける（押す場所だと分かるように。枠の色はここだけ） */
.gcs.gcs2 .gcs2-search {
	border: 2px solid var(--gcs-accent);
}

/* 絵とキャンプ名は、押すとくわしい情報が開く */
.gcs.gcs2 .gcs-card__thumb,
.gcs.gcs2 .gcs-card__title {
	cursor: pointer;
}

/* 紹介記事へのリンクは、くわしい情報のボタンの下にいつも見せる */
.gcs.gcs2 .gcs2-article {
	order: 1;
	align-self: flex-start;
	padding: 4px 0 6px;
	color: var(--gcs-link);
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gcs.gcs2 .gcs2-article::after {
	content: " ›";
}

/* 紹介記事へのリンクを、押しやすい枠つきのボタンにする（本の印つき・横幅いっぱい・高さ44px）。
   くわしい情報を開いたときは、その中身の下、料金の上に来る */
.gcs.gcs2 .gcs2-article {
	order: 2;
	align-self: stretch;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 44px;
	margin: 10px 0 2px;
	padding: 8px 14px;
	border: 1.5px solid var(--gcs-link);
	border-radius: 999px;
	background: #fff;
	font-size: 14px;
	line-height: 1.4;
	text-decoration: none;
}

.gcs.gcs2 .gcs2-article::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h5v17H6a2 2 0 0 0-2 2z'/%3E%3Cpath d='M20 5a2 2 0 0 0-2-2h-5v17h5a2 2 0 0 1 2 2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a2 2 0 0 1 2-2h5v17H6a2 2 0 0 0-2 2z'/%3E%3Cpath d='M20 5a2 2 0 0 0-2-2h-5v17h5a2 2 0 0 1 2 2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* カードの境目をはっきりさせる：記事の地とほぼ同じ白なので、細い枠とやわらかい影で1枚ずつ区切る */
.gcs.gcs2 .gcs-card {
	margin-bottom: 18px;
	border: 1px solid #ead9dd;
	background: #fff;
	box-shadow: 0 3px 10px rgba(67, 52, 42, 0.08);
}

@media (min-width: 768px) {
	.gcs.gcs2 .gcs-card {
		margin-bottom: 0;
	}
}

/* 料金の例外の行の下に、テーマが足す余白を消す（カードの下が空きすぎるため） */
.gcs.gcs2 .gcs-card .gcs2-except {
	margin: 0;
}


/* ===== 0.7.7（2026-10-14）仲間の感想を受けた直し ===== */

/* 検索ページだけ：記事の白い地をなくし、ページ全体をいまより淡いピンクにする（リード文を読みやすく） */
body:has(.gcs.gcs2) {
	background-color: #fef8f8 !important;
}

body:has(.gcs.gcs2) .article,
body:has(.gcs.gcs2) .entry-content {
	background-color: transparent !important;
}

/* パソコン：同じ段のカードは、外枠の高さと下のボタンの位置をそろえる（中身は削らない） */
@media (min-width: 768px) {
	.gcs.gcs2 .gcs-list,
	.gcs.gcs2 .gcs-past__list {
		align-items: stretch;
	}

	.gcs.gcs2 .gcs-card {
		display: flex;
		flex-direction: column;
	}

	.gcs.gcs2 .gcs-card[hidden] {
		display: none;
	}

	.gcs.gcs2 .gcs-card__main {
		flex: 1 1 auto;
	}

	.gcs.gcs2 .gcs-card:not(.is-open) .gcs-card__side {
		margin-top: auto;
	}

	/* 料金の例外の1行は、料金とボタンの上に置く（下に置くと、その分だけボタンの位置が隣とずれる） */
	.gcs.gcs2 .gcs-card .gcs2-except {
		order: -1;
	}
}

/* 読者特典の帯：記事の中の一覧では出さない */
.gcs2-benefit {
	display: none;
}

/* 読者特典のあるカード：地を淡い黄色にし、上に「プレゼントの印＋文字」の帯を付ける */
.gcs.gcs2 .gcs-card--benefit {
	border-color: #ecd49c;
	/* テーマ側が記事の枠の地色を強く指定しているので、ここも強く指定する */
	background-color: #fffaf0 !important;
}

.gcs.gcs2 .gcs2-benefit {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: -14px -14px 12px;
	padding: 7px 78px 7px 14px;
	border-radius: 15px 15px 0 0;
	background: #fbe7b8;
	color: #6b4300;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

.gcs.gcs2 .gcs2-benefit::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	background: #c9354f;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M12 8v13'/%3E%3Cpath d='M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7'/%3E%3Cpath d='M7.5 8a2.5 2.5 0 0 1 0-5C11 3 12 8 12 8s1-5 4.5-5a2.5 2.5 0 0 1 0 5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='4' rx='1'/%3E%3Cpath d='M12 8v13'/%3E%3Cpath d='M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7'/%3E%3Cpath d='M7.5 8a2.5 2.5 0 0 1 0-5C11 3 12 8 12 8s1-5 4.5-5a2.5 2.5 0 0 1 0 5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 右上のプレゼントの印（光の輪＋「読者特典」の文字）。帯とは別に、ぱっと見て分かるように大きく置く */
.gcs.gcs2 .gcs-card--benefit {
	position: relative;
}

.gcs.gcs2 .gcs-card--benefit::after {
	content: "読者特典";
	position: absolute;
	top: -24px;
	right: -8px;
	z-index: 2;
	box-sizing: border-box;
	width: 76px;
	height: 76px;
	padding-top: 49px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M24 14c-3-8-13-8-12-2 1 4 8 3 12 2zM24 14c3-8 13-8 12-2-1 4-8 3-12 2z' fill='%23ffcf40' stroke='%23e0a800' stroke-width='1.5' stroke-linejoin='round'/%3E%3Crect x='6' y='14' width='36' height='9' rx='2' fill='%23f0607c'/%3E%3Crect x='9' y='23' width='30' height='20' rx='2' fill='%23e64a69'/%3E%3Crect x='20.5' y='14' width='7' height='29' fill='%23ffcf40'/%3E%3Crect x='6' y='21.5' width='36' height='1.5' fill='%23c93a57' opacity='.45'/%3E%3C/svg%3E") center 6px / 42px 42px no-repeat,
		radial-gradient(circle at 50% 42%, rgba(255, 210, 90, 1) 0%, rgba(255, 214, 102, 0.75) 38%, rgba(255, 214, 102, 0) 70%);
	color: #d02f55;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-align: center;
	text-shadow: 0 0 2px #fff, 1px 1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, -1px -1px 0 #fff;
	pointer-events: none;
}

@media (min-width: 768px) {
	.gcs.gcs2 .gcs-card--benefit::after {
		top: -30px;
		right: -16px;
		width: 112px;
		height: 112px;
		padding-top: 76px;
		background-position: center 10px, center;
		background-size: 66px 66px, auto;
		font-size: 14px;
	}
}

/* 帯で伝えるので、小さなラベルの「読者特典あり」は重ねて出さない */
.gcs.gcs2 .gcs-card--benefit .gcs-tag--benefit {
	display: none;
}

@media (min-width: 768px) {
	.gcs.gcs2 .gcs2-benefit {
		margin: -16px -16px 14px;
		padding: 8px 100px 8px 16px;
	}
}

/* ===== 0.7.8（2026-10-14）読者特典の中身を、紹介記事のボタンのすぐ上にいつも見せる ===== */
.gcs.gcs2 .gcs2-benefitnote {
	order: 2;
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: 10px;
	background: #fdeef0;
	color: var(--gcs-ink);
	font-size: 13.5px;
	line-height: 1.7;
}

.gcs.gcs2 .gcs2-benefitnote .gcs-card__benefit-label {
	margin-right: 8px;
}

/* ===== 0.8.0（2026-10-14）カードに「どんな体験をするか」の説明・場所の一言・短いキャンプ名 ===== */

/* 場所の一言：キャンプ名のすぐ下に太字で */
.gcs.gcs2 .gcs2-place {
	grid-column: 1;
	margin: 4px 0 0;
	color: var(--gcs-ink);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
}

/* 年と季節を出さなくなった上の行は、「過去の開催」の印がないときは高さを取らない */
.gcs.gcs2 .gcs-card__where:not(:has(.gcs-tag--status:not([hidden]))) {
	display: none;
}

@media (max-width: 767px) {
	/* スマホ：絵の右に、キャンプ名→場所の一言の順で並べる */
	.gcs.gcs2 .gcs-card__head,
	.gcs.gcs2 .gcs-card__head.has-thumb {
		grid-template-rows: auto auto 1fr;
	}

	.gcs.gcs2 .gcs-card__thumb,
	.gcs.gcs2 .has-thumb .gcs-card__thumb,
	.gcs.gcs2 .gcs-card__head:not(.has-thumb)::before {
		grid-row: 1 / 4;
		align-self: start;
	}

	.gcs.gcs2 .gcs2-place {
		grid-column: 2;
		grid-row: 3;
		align-self: start;
	}
}

/* 説明：条件のラベルのすぐ下。色は付けず、上下の余白だけで区切る */
.gcs.gcs2 .gcs2-desc {
	margin: 16px 0 4px;
	color: var(--gcs-ink);
	font-size: 14px;
	line-height: 1.7;
}

/* 日程がいちばん上の行になったので、太字を付ける行を入れ替える */
.gcs.gcs2 .gcs-card__facts > .gcs-facts > .gcs-facts__row:nth-child(2) dd {
	font-weight: 400;
}

.gcs.gcs2 .gcs-card__facts > .gcs-facts > .gcs-facts__row:first-child dd {
	font-weight: 700;
}

/* くわしい情報を開くところ：薄いグレーの横長にして、押せる場所だと分かるようにする */
.gcs.gcs.gcs.gcs2 .gcs-card .gcs-card__morebtn {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	margin: 12px 0 0;
	padding: 11px 14px;
	border: 0;
	border-radius: 8px;
	background: #f3f1ef;
	font-size: 14px;
	text-align: left;
	text-decoration: none;
}

/* 日程の末尾の（申込締切…）は、ひとかたまりで折り返す */
.gcs.gcs2 .gcs2-nb {
	display: inline-block;
}

/* ===== 0.8.1（2026-10-14）パソコン：隣のカードと日程の行の高さをそろえる ===== */
@media (min-width: 768px) {
	/* 説明が2行のカードは、下を空けて3行ぶんの高さにする */
	.gcs.gcs2 .gcs2-desc {
		min-height: calc(14px * 1.7 * 3);
	}

	/* くわしい情報を開くところと、料金の線がくっつかないように間を空ける */
	.gcs.gcs.gcs.gcs2 .gcs-card .gcs-card__morebtn {
		margin-bottom: 12px;
	}

	.gcs.gcs.gcs.gcs2 .gcs-card:has(.gcs2-article) .gcs-card__morebtn {
		margin-bottom: 0;
	}

	.gcs.gcs2 .gcs-card .gcs2-article {
		margin-bottom: 12px;
	}
}

/* ===== 0.9.4〜0.9.5（2026-10-15）読みやすさ・カードの縦の長さ・見比べやすさ（検索ページだけ。記事の中の一覧は変えない） ===== */

/* 上の部分：リード文から一覧までを短くする */
body:has(.gcs.gcs2) .entry-content > p {
	margin-bottom: 1.1em;
}

.gcs.gcs2 .gcs-status {
	margin: 12px 2px 6px;
}

.gcs.gcs2 .gcs-selected:not([hidden]) {
	margin-top: 10px;
}

.gcs.gcs2 .gcs2-count {
	font-size: 15px;
	font-weight: 700;
}

.gcs.gcs2 .gcs2-count b {
	margin: 0 2px 0 4px;
	font-size: 24px;
}

/* カード：文字を大きく（スマホ。パソコンは下で上書き） */
.gcs.gcs.gcs.gcs2 .gcs-card__title {
	font-size: 18px;
	line-height: 1.4;
}

.gcs.gcs.gcs.gcs2 .gcs2-place {
	font-size: 15px;
}

.gcs.gcs.gcs.gcs2 .gcs-card__tags {
	gap: 5px;
}

.gcs.gcs.gcs.gcs2 .gcs-card .gcs-tag {
	padding: 1px 7px;
	font-size: 13px;
	line-height: 1.6;
}

/* 説明：大きくするぶん、上下の余白をつめる */
.gcs.gcs.gcs.gcs2 .gcs2-desc {
	margin: 8px 0 0;
	font-size: 15px;
	line-height: 1.65;
}

/* 日程・対象・集合場所：行の間は少しつめる */
.gcs.gcs.gcs.gcs2 .gcs-facts__row {
	gap: 8px;
	padding: 1px 0;
	font-size: 15px;
	line-height: 1.5;
}

.gcs.gcs.gcs.gcs2 .gcs-facts dt {
	flex: none;
	width: 66px;
	padding-top: 1px;
	font-size: 13.5px;
}

.gcs.gcs.gcs.gcs2 .gcs2-cond {
	font-size: 13px;
}

.gcs.gcs.gcs.gcs2 .gcs-card .gcs-card__morebtn {
	margin-top: 8px;
	padding: 9px 14px;
	font-size: 14.5px;
}

/* 料金：キャンプ名とラベルのすぐ下に大きく（0.9.5で上へ移した）
   1行目＝何人ぶんの料金か（親子2名・1人あたり）と、航空券が入っているか／2行目＝金額／例外がある回だけピンクの1行 */
.gcs.gcs.gcs.gcs2 .gcs2-pricebox {
	margin: 12px 0 0;
}

.gcs.gcs.gcs.gcs2 .gcs2-pricebox .gcs-price {
	display: block;
	margin: 0;
}

.gcs.gcs.gcs.gcs2 .gcs2-pricebox .gcs-price__label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px 6px;
	margin: 0;
	color: var(--gcs-sub);
	font-size: 13px;
	line-height: 1.4;
}

.gcs.gcs.gcs.gcs2 .gcs2-per {
	margin-left: -6px;
	color: var(--gcs-ink);
	font-weight: 700;
}

.gcs.gcs.gcs.gcs2 .gcs2-air {
	padding: 0 7px;
	border-radius: 5px;
	background: var(--gcs-tagbg);
	color: var(--gcs-ink);
	font-size: 12.5px;
	font-weight: 700;
}

.gcs.gcs.gcs.gcs2 .gcs2-pricebox .gcs-price__main {
	display: block;
	color: var(--gcs-accent);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
}

.gcs.gcs.gcs.gcs2 .gcs2-pricebox .gcs-price__note {
	margin-top: 2px;
}

.gcs.gcs.gcs.gcs2 .gcs-card .gcs2-pricebox .gcs2-except {
	display: block;
	margin: 6px 0 0;
	font-size: 13.5px;
}

/* 「くわしく見る」を開いたときは、料金の内訳を出すので、例外の1行は隠す（今までと同じ） */
.gcs.gcs.gcs.gcs2 .gcs-card.is-open .gcs2-pricebox .gcs2-except {
	display: none;
}

/* 説明：料金との間を1行ぶん空けて、まとまりを分ける */
.gcs.gcs.gcs.gcs2 .gcs-card .gcs2-desc {
	margin: 12px 0 0;
}

/* 日程・対象・集合場所：薄い色の囲みに入れて、説明と分ける */
.gcs.gcs.gcs.gcs.gcs2 .gcs-card__facts > dl.gcs-facts {
	align-self: stretch;
	box-sizing: border-box;
	width: 100%;
	margin-top: 12px !important;
	padding: 10px 12px;
	border-radius: 10px;
	background: #f6f1ed;
}

/* 公式サイトのボタン：カードのいちばん下に横幅いっぱい */
.gcs.gcs.gcs.gcs2 .gcs-card .gcs-card__side,
.gcs.gcs.gcs.gcs2 .gcs-card.is-open .gcs-card__side {
	display: block;
	box-sizing: border-box;
	width: 100%;
	align-self: stretch;
	margin-top: 10px;
	padding-top: 0;
	border-top: 0;
}

.gcs.gcs.gcs.gcs2 .gcs-card .gcs-card__btns {
	display: block;
	width: 100%;
}

.gcs.gcs.gcs.gcs2 .gcs-card__btns .gcs-btn--main {
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 11px 16px;
	font-size: 16px;
}

.gcs.gcs.gcs.gcs2 .gcs-card__btns .gcs-btn--consult {
	box-sizing: border-box;
	width: 100%;
	margin-top: 8px;
}

/* パソコン */
@media (min-width: 768px) {
	.gcs.gcs.gcs.gcs2 .gcs-card {
		padding: 16px;
	}

	.gcs.gcs.gcs.gcs2 .gcs-card__thumb,
	.gcs.gcs.gcs.gcs2 .gcs-card__head:not(.has-thumb)::before {
		margin-bottom: 10px;
	}

	.gcs.gcs.gcs.gcs2 .gcs-card__title {
		font-size: 22px;
		line-height: 1.35;
	}

	.gcs.gcs.gcs.gcs2 .gcs2-place {
		margin-top: 2px;
		font-size: 18px;
	}

	.gcs.gcs.gcs.gcs2 .gcs-card .gcs-tag {
		font-size: 14px;
	}

	/* 説明は16px。隣のカードと日程の行をそろえるため、3行ぶんの高さはとっておく */
	.gcs.gcs.gcs.gcs2 .gcs2-desc {
		min-height: calc(16px * 1.6 * 3);
		font-size: 16px;
		line-height: 1.6;
	}

	.gcs.gcs.gcs.gcs2 .gcs-facts__row {
		gap: 10px;
		font-size: 16px;
	}

	.gcs.gcs.gcs.gcs2 .gcs-facts dt {
		width: 76px;
		font-size: 15px;
	}

	.gcs.gcs.gcs.gcs2 .gcs-card .gcs-card__morebtn {
		margin-bottom: 10px;
		font-size: 15px;
	}

	.gcs.gcs.gcs.gcs2 .gcs2-pricebox .gcs-price__label {
		font-size: 14px;
	}

	.gcs.gcs.gcs.gcs2 .gcs2-air {
		font-size: 13.5px;
	}

	.gcs.gcs.gcs.gcs2 .gcs2-pricebox .gcs-price__main {
		font-size: 30px;
	}

	/* 料金の箱は、例外の1行がないカードも同じ高さにする（隣のカードと日程の囲みの位置をそろえる） */
	.gcs.gcs.gcs.gcs2 .gcs-list .gcs2-pricebox,
	.gcs.gcs.gcs.gcs2 .gcs-past__list .gcs2-pricebox {
		min-height: calc(14px * 1.4 + 30px * 1.2 + 6px + 10px + 14px * 1.5);
	}

	.gcs.gcs.gcs.gcs2 .gcs-card .gcs2-pricebox .gcs2-except {
		order: 0;
		font-size: 14px;
	}

	.gcs.gcs.gcs.gcs2 .gcs-card__btns .gcs-btn--main {
		min-height: 52px;
		font-size: 17px;
	}
}

/* ===== 0.9.7（2026-10-16）海外の検索ページ：スマホで写真を大きく・横スワイプ・押すと拡大 ===== */

/* 大きな写真はスマホだけ。パソコンは今までどおり、カードの上の写真を出す */
.gcs3-gallery {
	display: none;
}

.gcs.gcs2--abroad .gcs-card__thumb {
	cursor: zoom-in;
}

@media (max-width: 767px) {
	.gcs.gcs2--abroad .gcs3-gallery {
		display: block;
		position: relative;
		margin: -14px -14px 12px;
		overflow: hidden;
		border-radius: inherit;
		border-bottom-right-radius: 0;
		border-bottom-left-radius: 0;
		background: #f3eef0;
	}

	/* 読者特典の帯があるカードは、帯の下に写真を置く */
	.gcs.gcs2--abroad .gcs2-benefit + .gcs3-gallery {
		margin-top: 0;
		border-radius: 0;
	}

	.gcs.gcs2--abroad .gcs3-gallery__track {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.gcs.gcs2--abroad .gcs3-gallery__track::-webkit-scrollbar {
		display: none;
	}

	.gcs.gcs.gcs2--abroad .gcs3-gallery__item {
		flex: 0 0 100%;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: none;
		box-shadow: none;
		cursor: zoom-in;
		scroll-snap-align: start;
	}

	.gcs.gcs.gcs2--abroad .gcs3-gallery__img {
		display: block;
		width: 100%;
		height: auto;
		margin: 0;
		aspect-ratio: 16 / 9;
		object-fit: cover;
		border-radius: 0;
	}

	/* 何枚目か（写真が2枚以上のときだけ） */
	.gcs.gcs2--abroad .gcs3-gallery__num {
		position: absolute;
		right: 10px;
		top: 10px;
		padding: 2px 10px;
		border-radius: 999px;
		background: rgba(0, 0, 0, 0.55);
		color: #fff;
		font-size: 13px;
		font-weight: 700;
		line-height: 1.6;
		pointer-events: none;
	}

	.gcs.gcs2--abroad .gcs3-gallery__dots {
		display: flex;
		justify-content: center;
		gap: 6px;
		padding: 8px 0 0;
		background: #fff;
	}

	.gcs.gcs2--abroad .gcs3-gallery__dots i {
		width: 7px;
		height: 7px;
		border-radius: 50%;
		background: #dcc9ce;
	}

	.gcs.gcs2--abroad .gcs3-gallery__dots i.is-on {
		background: var(--gcs-accent, #b8445f);
	}

	/* 押すと大きくなる印（虫めがね）。左上に置く（写真の出典が右下に入っているため） */
	.gcs.gcs2--abroad .gcs3-gallery__zoom {
		position: absolute;
		left: 10px;
		top: 10px;
		width: 30px;
		height: 30px;
		border-radius: 50%;
		background: rgba(0, 0, 0, 0.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center / 18px no-repeat;
		pointer-events: none;
	}

	/* 小さな写真は隠し、キャンプ名・場所・ラベルを横幅いっぱいに並べる */
	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs-card__thumb,
	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head:not(.has-thumb)::before {
		display: none;
	}

	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head,
	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head.has-thumb {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: none;
		gap: 2px;
	}

	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs-card__where,
	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs-card__title,
	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs2-place,
	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs-card__tags {
		grid-column: 1;
		grid-row: auto;
	}

	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs-card__title {
		font-size: 20px;
		line-height: 1.4;
	}

	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs2-place {
		margin-top: 2px;
		font-size: 15px;
	}

	.gcs.gcs.gcs.gcs2--abroad .gcs-card__head .gcs-card__tags {
		margin-top: 8px;
	}
}

/* 件数の横の「（全◯件）」 */
.gcs.gcs2--abroad .gcs2-total {
	margin-left: 2px;
	color: var(--gcs-sub, #7a6a6e);
	font-size: 0.85em;
	font-weight: 400;
}

/* 写真を大きく見る画面 */
html.gcs3-noscroll,
html.gcs3-noscroll body {
	overflow: hidden;
}

.gcs3-viewer {
	position: fixed;
	inset: 0;
	z-index: 2147483000;
	background: rgba(15, 10, 12, 0.94);
}

.gcs3-viewer[hidden] {
	display: none;
}

.gcs3-viewer__track {
	display: flex;
	height: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.gcs3-viewer__track::-webkit-scrollbar {
	display: none;
}

.gcs3-viewer__slide {
	display: flex;
	flex: 0 0 100%;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 56px 8px;
	scroll-snap-align: start;
}

.gcs3-viewer__slide img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	border-radius: 6px;
}

.gcs3-viewer__num {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 16px;
	margin: 0;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
}

.gcs3-viewer button {
	position: absolute;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.gcs3-viewer .gcs3-viewer__close {
	top: 10px;
	right: 10px;
	width: 44px;
	height: 44px;
}

.gcs3-viewer .gcs3-viewer__prev,
.gcs3-viewer .gcs3-viewer__next {
	top: 50%;
	display: none;
	width: 48px;
	height: 48px;
	margin-top: -24px;
	font-size: 32px;
}

.gcs3-viewer .gcs3-viewer__prev {
	left: 16px;
}

.gcs3-viewer .gcs3-viewer__next {
	right: 16px;
}

@media (min-width: 768px) {
	.gcs3-viewer:not(.is-single) .gcs3-viewer__prev,
	.gcs3-viewer:not(.is-single) .gcs3-viewer__next {
		display: block;
	}

	.gcs3-viewer__slide {
		padding: 64px 88px;
	}
}

/* ===== 0.9.8（2026-10-16）海外の検索ページ：申込締切が近い回の印 ===== */
.gcs.gcs.gcs2--abroad .gcs-card .gcs3-deadline {
	flex-basis: 100%;
	box-sizing: border-box;
	border: 1px solid #f0c7d0;
	background: #fdf0f3;
	color: #a3354f;
	font-weight: 700;
}

.gcs.gcs.gcs2--abroad .gcs-card .gcs3-deadline.is-soon {
	border-color: #b8445f;
	background: #b8445f;
	color: #fff;
}

/* パソコン：印は写真の左上に重ねる（ラベルの行に入れると、隣のカードと日程の行がずれるため） */
@media (min-width: 768px) {
	.gcs.gcs.gcs2--abroad .gcs-card {
		position: relative;
	}

	.gcs.gcs.gcs.gcs2--abroad .gcs-card .gcs3-deadline {
		position: absolute;
		top: 24px;
		left: 24px;
		z-index: 1;
		flex-basis: auto;
		margin: 0;
		box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
	}
}

/* ===== 0.9.9（2026-10-17）海外の検索ページ：スマホで「行き先」「国際線の空港」は2列（オーストラリア・関西国際空港が3列だと枠からはみ出すため） ===== */
@media (max-width: 767px) {
	.gcs.gcs2 .gcs-row[data-filter="country"] .gcs-chips,
	.gcs.gcs2 .gcs-row[data-filter="airport"] .gcs-chips {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
