/* fk ギャラリー フロント出力（クリーン・余計なclassなし） */
.fk-gallery {
	display: grid;
	gap: 12px;
	margin: 1.5em 0;
}
.fk-gallery--cols-1 { grid-template-columns: 1fr; }
.fk-gallery--cols-2 { grid-template-columns: repeat(2, 1fr); }
.fk-gallery--cols-3 { grid-template-columns: repeat(3, 1fr); }
.fk-gallery--cols-4 { grid-template-columns: repeat(4, 1fr); }
.fk-gallery--cols-5 { grid-template-columns: repeat(5, 1fr); }

.fk-gallery__item { margin: 0; }
.fk-gallery__img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 6px;
}
/* 複数枚（2枚以上）は固定比率でクロップして均一に。1枚は自然表示のまま */
.fk-gallery--cols-2 .fk-gallery__img,
.fk-gallery--cols-3 .fk-gallery__img,
.fk-gallery--cols-4 .fk-gallery__img,
.fk-gallery--cols-5 .fk-gallery__img {
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
}
.fk-gallery__cap {
	margin-top: 4px;
	font-size: 13px;
	color: #555;
	line-height: 1.5;
}

@media (max-width: 600px) {
	.fk-gallery--cols-3,
	.fk-gallery--cols-4,
	.fk-gallery--cols-5 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* fk 商品ギャラリー フロント出力 */
.fk-products {
	display: grid;
	gap: 18px 14px;
	margin: 1.5em 0;
}
.fk-products--cols-2 { grid-template-columns: repeat(2, 1fr); }
.fk-products--cols-3 { grid-template-columns: repeat(3, 1fr); }
.fk-products--cols-4 { grid-template-columns: repeat(4, 1fr); }
.fk-products--cols-5 { grid-template-columns: repeat(5, 1fr); }

.fk-products__item { margin: 0; }
.fk-products__link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.fk-products__link:hover .fk-products__img { opacity: .85; }
.fk-products__imgwrap {
	position: relative;
	display: block;
	border-radius: 8px;
	overflow: hidden;
}
.fk-products__img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: opacity .2s;
}
.fk-products__badge {
	position: absolute;
	top: 8px;
	left: 8px;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	padding: 5px 10px;
	border-radius: 3px;
	letter-spacing: .04em;
}
.fk-products__meta {
	display: block;
	margin-top: 8px;
	line-height: 1.5;
	text-align: center;
}
.fk-products__name {
	display: block;
	font-size: 15px;
	font-weight: 600;
}
.fk-products__price {
	display: block;
	margin-top: 2px;
	font-size: 14px;
	color: #666;
}

@media (max-width: 600px) {
	.fk-products--cols-3,
	.fk-products--cols-4,
	.fk-products--cols-5 {
		grid-template-columns: repeat(2, 1fr);
	}
	.fk-products { gap: 16px 10px; }
	.fk-products__name { font-size: 14px; }
	.fk-products__price { font-size: 13px; }
}

/* fk 表組 フロント出力 */
.fk-table {
	margin: 1.5em 0;
	overflow-x: auto;
}
.fk-table__table {
	width: 100%;
	border-collapse: collapse;
}
.fk-table__table th,
.fk-table__table td {
	border: 1px solid #d6d6d6;
	padding: 10px 14px;
	text-align: left;
	vertical-align: top;
	line-height: 1.7;
}
.fk-table__table th {
	background: #f4f1ea;
	font-weight: 700;
	white-space: nowrap;
}

/* fk 吹き出し フロント出力 */
.fk-talk {
	display: flex;
	gap: 14px;
	margin: 1.2em 0;
	align-items: flex-start;
}
.fk-talk--right { flex-direction: row-reverse; }
.fk-talk__avatar { flex: 0 0 auto; }
.fk-talk__avatar img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}
.fk-talk__body { flex: 1 1 auto; min-width: 0; }
.fk-talk--right .fk-talk__body { text-align: right; }
.fk-talk__name { font-size: 12px; color: #666; margin-bottom: 4px; }
.fk-talk__bubble {
	position: relative;
	display: inline-block;
	text-align: left;
	max-width: 80%;
	background: #f1f3f5;
	border-radius: 12px;
	padding: 12px 16px;
	line-height: 1.7;
	word-break: break-word;
}
.fk-talk__bubble::before {
	content: "";
	position: absolute;
	top: 16px;
	width: 0;
	height: 0;
	border: 8px solid transparent;
}
.fk-talk--left .fk-talk__bubble::before { left: -14px; border-right-color: #f1f3f5; }
.fk-talk--right .fk-talk__bubble::before { right: -14px; border-left-color: #f1f3f5; }

/* fk 地図 フロント出力 */
.fk-map {
	margin: 1.5em 0;
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
}
.fk-map iframe { display: block; width: 100%; height: 100%; }

/* fk CTA呼び出し フロント出力 */
.fk-cta { margin: 1.5em 0; }

/* fk 見出し */
.fk-heading { font-weight: 700; line-height: 1.45; margin: 1.2em 0 0.6em; }
.fk-heading--xl { font-size: 2.4rem; letter-spacing: .02em; }
.fk-heading--lg { font-size: 1.85rem; border-left: 5px solid #c8a23a; padding-left: .5em; }
.fk-heading--md { font-size: 1.45rem; }
.fk-heading--sm { font-size: 1.2rem; }


/* fk 文章 フロント出力 */
.fk-text { line-height: 1.85; margin: 1em 0; }
.fk-text p { margin: 0 0 1em; }
.fk-text p:last-child { margin-bottom: 0; }
/* リッチ: 段落の余白を詰める（Enter＝改行の見た目） */
.fk-text--rich p { margin: 0; }
/* リッチ: 改行を行送りで表示（空白保持） */
.fk-text--rich { white-space: pre-wrap; line-height: 1.7; }
/* リッチ: 行単位の中央寄せ/右寄せ */
.fk-line-center { display: block; text-align: center; }
.fk-line-right { display: block; text-align: right; }

/* fk セクション フロント出力 */
.fk-section { /* 余白・背景はブロックの設定（スペーシング/色）で付与 */ }
/* 幅：デフォルト＝中央・最大1000px、ワイド＝横幅100% */
.fk-section--default { max-width: 1000px; margin-left: auto; margin-right: auto; }
.fk-section--wide { max-width: none; width: 100%; }
/* 背景画像（content_matome の代替）*/
.fk-section--bg { background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; }
.fk-section--overlay { position: relative; }
.fk-section--overlay::before { content: ""; position: absolute; inset: 0; background: rgba( 0, 0, 0, 0.4 ); z-index: 0; }
.fk-section--overlay > * { position: relative; z-index: 1; }

/* fk ツアーポイント フロント出力 */
.fk-points { margin: 1.5em 0; }
.fk-points__title { font-size: 1.4rem; font-weight: 700; text-align: center; background: #1b3b8b; color: #fff; padding: 12px 16px; border-radius: 6px; margin-bottom: 16px; }
.fk-points__item { border: 2px dashed #e6a01e; border-radius: 10px; padding: 16px 18px; margin-bottom: 16px; }
.fk-points__no { display: inline-block; background: #e6a01e; color: #fff; font-size: 13px; font-weight: 700; border-radius: 4px; padding: 3px 12px; margin-bottom: 10px; }
.fk-points__row { display: flex; gap: 18px; align-items: flex-start; }
.fk-points__body { flex: 1 1 auto; min-width: 0; }
.fk-points__head { color: #1b3b8b; font-size: 1.25rem; margin: 0 0 8px; line-height: 1.4; }
.fk-points__desc { line-height: 1.85; }
.fk-points__img { flex: 0 0 240px; }
.fk-points__img img { width: 100%; height: auto; border-radius: 6px; display: block; }
@media ( max-width: 600px ) { .fk-points__row { flex-direction: column; } .fk-points__img { flex-basis: auto; } }

/* ツアーポイント画像をカードサムネサイズに（大きすぎ対策） */
.fk-points__img { flex: 0 0 200px; }
.fk-points__img img { width: 100%; max-width: 200px; height: 150px; object-fit: cover; }

/* fk カラム（段組） */
.fk-columns { display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-start; margin: 1.5em 0; }
.fk-column { flex: 1 1 240px; min-width: 0; }
/* 段組み内の画像は均一比率でクロップして列の高さを揃える（独立した1枚画像は対象外） */
.fk-column .fk-gallery__img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
@media ( max-width: 600px ) { .fk-column { flex-basis: 100%; } }

/* ===== ギャラリー用ライトボックス（自前フォールバック） =====
   テーマに Lightbox2 がある環境では gallery-front.js が起動しないため、この見た目は使われない。 */
.fk-lb {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba( 0, 0, 0, .88 );
}
.fk-lb.is-open { display: flex; }
.fk-lb__figure {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  max-width: 92vw;
  max-height: 88vh;
}
.fk-lb__img {
  display: block;
  width: auto;
  height: auto;
  max-width: 92vw;
  max-height: 78vh;
  object-fit: contain;
}
.fk-lb__cap {
  color: #fff;
  font-size: 14px;
  line-height: 1.7;
  text-align: center;
  max-width: 80vw;
}
.fk-lb__btn {
  position: absolute;
  background: none;
  border: 0;
  color: #fff;
  cursor: pointer;
  line-height: 1;
  padding: 12px;
}
.fk-lb__btn:hover { opacity: .7; }
.fk-lb__close { top: 8px; right: 12px; font-size: 34px; }
.fk-lb__prev { left: 6px; top: 50%; transform: translateY( -50% ); font-size: 28px; }
.fk-lb__next { right: 6px; top: 50%; transform: translateY( -50% ); font-size: 28px; }
body.fk-lb-open { overflow: hidden; }
@media ( max-width: 600px ) {
  .fk-lb { padding: 12px; }
  .fk-lb__close { font-size: 30px; }
  .fk-lb__prev, .fk-lb__next { font-size: 24px; }
}
