/* =========================================================
   施工例 新表示（試作 v2 / 2026-10-24） parts/gallery-v2.php 専用
   スマホ（施工例閲覧の83%）を基準に、980px以上でPC向けのリズムを足す
   ========================================================= */

.gv2 {
	--gv2-ink: #333;
	--gv2-sub: #8a7a70;
	--gv2-accent: #a18080;
	--gv2-ease: cubic-bezier(.165, .84, .44, 1);
	/* 小さい文字の読みやすさ優先で端末標準のゴシック（Instagram と同じ考え方） */
	--gv2-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
	margin: .25rem 0 4rem; /* 上はページ上部のタイトル（.gv2-head）の余白に任せる */
	color: var(--gv2-ink);
}

/* ---- 写真 ---- */
.gv2-fig {
	margin: 0 0 1.5rem;
}
.gv2-fig a {
	display: block;
	cursor: zoom-in;
	-webkit-tap-highlight-color: transparent;
}
.gv2-fig img {
	display: block;
	width: 100%;
	height: auto;
	background: #eee8e3;
}
/* 縦長の写真はスマホでも左右に少し余白を残し、横長との違いでリズムを作る */
.gv2-fig.is-portrait {
	padding: 0 7vw;
}

/* ---- キャプション ---- */
/* テーマ全体の「figure figcaption { position:absolute; 右下に白文字 }」を打ち消す */
.gv2 .gv2-cap {
	position: static;
	right: auto;
	bottom: auto;
}
.gv2-cap {
	word-break: auto-phrase; /* 文節で折り返す（未対応ブラウザは通常の折り返し） */
	max-width: 34em;
	margin: .9rem auto 0;
	padding: 0 16px;
	font-family: var(--gv2-sans);
	font-size: .75rem;
	line-height: 1.8;
	letter-spacing: .03em;
	color: #4a4a4a;
}

/* ---- 紹介文 ---- */
.gv2-intro {
	word-break: auto-phrase;
	max-width: 32em;
	margin: 1.75rem auto 2.5rem;
	padding: 0 16px;
	font-family: var(--gv2-sans);
	font-size: .8125rem;
	line-height: 1.95;
	letter-spacing: .04em;
}

/* ---- 所在地・施工年・関連リンク（元の「説明」から引き継ぐ） ---- */
.gv2-info {
	max-width: 32em;
	margin: -1.25rem auto 2.5rem;
	padding: 0 16px;
	font-family: var(--gv2-sans);
	font-size: .6875rem;
	line-height: 1.8;
	letter-spacing: .04em;
	color: var(--gv2-sub);
}
.gv2-info p {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
}
.gv2-links {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1.25rem;
	margin: .5rem 0 0;
	padding: 0;
	list-style: none;
}
.gv2-links a {
	color: var(--gv2-accent);
	text-decoration: underline;
	text-underline-offset: .2em;
}

/* ---- 章見出し ---- */
.gv2-ch {
	display: flex;
	align-items: center;
	gap: .75rem;
	max-width: 34em;
	margin: 3rem auto 1.1rem;
	padding: 0 16px;
	font-family: var(--gv2-sans);
	font-size: .625rem;
	font-weight: normal;
	letter-spacing: .24em;
	color: var(--gv2-sub);
	border: 0;
}
.gv2-ch::after {
	content: "";
	flex: 1;
	height: 1px;
	background: currentColor;
	opacity: .35;
}

.gv2-end {
	height: 1px;
}

/* ---- PC（980px以上）: 横長は大きく、縦長は細めにして左右へ交互に寄せる ---- */
@media (min-width: 980px) {
	.gv2 {
		max-width: 1100px;
		margin: 2.5rem auto 6rem;
	}
	.gv2-fig {
		margin-bottom: 3.5rem;
	}
	.gv2-fig.is-portrait {
		width: 560px;
		padding: 0;
		margin-left: auto;
		margin-right: auto;
	}
	.gv2-fig.is-portrait:nth-of-type(odd) {
		transform: translateX(-120px);
	}
	.gv2-fig.is-portrait:nth-of-type(even) {
		transform: translateX(120px);
	}
	/* 左右寄せは transform、出現演出は translate プロパティなので干渉しない */
	.gv2-cap,
	.gv2-intro,
	.gv2-ch {
		padding: 0;
	}
	.gv2-cap {
		font-size: .8125rem;
	}
	.gv2-intro {
		font-size: .875rem;
		margin: 3rem auto 4rem;
	}
	.gv2-ch {
		margin-top: 4rem;
	}
}

/* =========================================================
   出現演出（html.gv2-js のときだけ初期非表示＝JSが動かなければ全表示）
   ========================================================= */
html.gv2-js .gv2 .rv {
	opacity: 0;
	translate: 0 26px;
	transition: opacity .9s var(--gv2-ease), translate .9s var(--gv2-ease);
}
html.gv2-js .gv2 .rv.rv-in {
	opacity: 1;
	translate: 0 0;
}

/* マスクリヴィール（Brain: mask-reveal-effect の汎用版） */
html.gv2-js .gv2 .mask-reveal {
	--mr-duration: 1.8s;
	--mr-delay: 0s;
	--mr-easing: cubic-bezier(.25, .46, .45, .94);
	--mr-band-soft: 8%;
	--mr-band-core: 34%;
	--mr-from: 100%;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, transparent calc(50% - var(--mr-band-core) / 2 - var(--mr-band-soft)), #fff calc(50% - var(--mr-band-core) / 2), #fff calc(50% + var(--mr-band-core) / 2), transparent calc(50% + var(--mr-band-core) / 2 + var(--mr-band-soft)), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, transparent calc(50% - var(--mr-band-core) / 2 - var(--mr-band-soft)), #fff calc(50% - var(--mr-band-core) / 2), #fff calc(50% + var(--mr-band-core) / 2), transparent calc(50% + var(--mr-band-core) / 2 + var(--mr-band-soft)), transparent 100%);
	-webkit-mask-size: 400% 100%;
	mask-size: 400% 100%;
	-webkit-mask-position: var(--mr-from) 50%;
	mask-position: var(--mr-from) 50%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	will-change: mask-position;
}
html.gv2-js .gv2 .mask-reveal--soft {
	--mr-band-soft: 14%;
	--mr-band-core: 20%;
	--mr-duration: 2.2s;
}
html.gv2-js .gv2 .mask-reveal.is-revealed {
	-webkit-mask-position: 50% 50%;
	mask-position: 50% 50%;
	transition: -webkit-mask-position var(--mr-duration) var(--mr-easing) var(--mr-delay), mask-position var(--mr-duration) var(--mr-easing) var(--mr-delay);
}
/* 写真の直後のキャプションは、写真が浮き上がるのを少し待ってから */
html.gv2-js .gv2 .gv2-fig .gv2-cap {
	--mr-delay: .25s;
}

@media (prefers-reduced-motion: reduce) {
	html.gv2-js .gv2 .rv {
		opacity: 1;
		translate: none;
		transition: none;
	}
	html.gv2-js .gv2 .mask-reveal {
		transition: none;
		-webkit-mask-position: 50% 50%;
		mask-position: 50% 50%;
	}
}

/* =========================================================
   拡大表示（PhotoSwipe）下部のキャプション
   ========================================================= */
.pswp__gv2-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
	background: linear-gradient(to top, rgba(0, 0, 0, .72), rgba(0, 0, 0, 0));
	color: #f2ede8;
	font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
	font-size: .75rem;
	line-height: 1.75;
	letter-spacing: .03em;
	pointer-events: none;
}
.pswp__gv2-ch {
	display: block;
	font-size: .625rem;
	letter-spacing: .24em;
	opacity: .7;
	margin-bottom: .25rem;
}
.pswp__gv2-text {
	display: block;
	max-width: 34em;
}
.pswp__gv2-no {
	position: absolute;
	right: 16px;
	bottom: calc(14px + env(safe-area-inset-bottom));
	font-family: "Quicksand", sans-serif;
	font-size: .625rem;
	letter-spacing: .1em;
	opacity: .6;
}
/* PhotoSwipe 標準の枚数表示はキャプション側に出すので隠す */
.pswp__counter {
	display: none;
}

/* =========================================================
   写真を見終えた位置の資料請求の案内
   ========================================================= */
.gv2-cta {
	max-width: 32em;
	margin: 3.5rem auto 1rem;
	padding: 2rem 16px 0;
	border-top: 1px solid rgba(138, 122, 112, .25);
	text-align: center;
	font-family: var(--gv2-sans);
}
.gv2-cta-lead {
	margin: 0 0 1.1rem;
	font-size: .8125rem;
	line-height: 1.9;
	letter-spacing: .04em;
	color: var(--gv2-ink);
}
.gv2-cta-btn {
	display: inline-block;
	padding: .8em 2.4em;
	border: 1px solid var(--gv2-accent);
	border-radius: 999px;
	font-size: .75rem;
	letter-spacing: .12em;
	color: var(--gv2-accent);
	background: transparent;
	transition: background-color .3s, color .3s;
}
.gv2-cta-btn:hover,
.gv2-cta-btn:focus-visible {
	background: var(--gv2-accent);
	color: #fff;
}

/* =========================================================
   ほかの施工例（カルーセル） parts/gallery-v2-more.php
   ========================================================= */
.gv2-more {
	--gv2-ink: #333;
	--gv2-sub: #8a7a70;
	--gv2-accent: #a18080;
	--gv2-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
	margin: 1rem 0 3rem;
	font-family: var(--gv2-sans);
}
.gv2-more-ch {
	margin-top: 2rem;
}
.gv2-more-wrap {
	position: relative;
}
.gv2-more-track {
	display: flex;
	column-gap: 10px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding: 0 16px;
	padding: 0 16px 4px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.gv2-more-track::-webkit-scrollbar {
	display: none;
}
.gv2-card {
	flex: 0 0 42vw;
	max-width: 220px;
	scroll-snap-align: start;
	color: var(--gv2-ink);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}
.gv2-card-img {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: #eee8e3;
}
.gv2-card-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--gv2-ease, ease);
}
a.gv2-card:hover .gv2-card-img img {
	transform: scale(1.04);
}
.gv2-card.is-current .gv2-card-img img {
	opacity: .55;
}
.gv2-card-badge {
	position: absolute;
	left: 8px;
	top: 8px;
	padding: .2em .7em;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	font-size: .625rem;
	letter-spacing: .1em;
	color: var(--gv2-ink);
}
.gv2-card-title {
	margin: .55rem 0 0;
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: .03em;
}
.gv2-card-meta {
	margin: .1rem 0 0;
	font-family: "Quicksand", -apple-system, BlinkMacSystemFont, "Hiragino Sans", sans-serif;
	font-size: .625rem;
	line-height: 1.6;
	letter-spacing: .04em;
	color: var(--gv2-sub);
}
.gv2-card-lead {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: .3rem 0 0;
	font-size: .625rem;
	line-height: 1.7;
	color: #666;
}
.gv2-more-arrow {
	display: none;
}

@media (min-width: 980px) {
	.gv2-more {
		max-width: 1100px;
		margin: 2rem auto 5rem;
	}
	.gv2-card {
		flex-basis: 220px;
	}
	.gv2-more-track {
		scroll-snap-type: none;
	}
	/* テーマ共通の button（Foundation）の余白・余白下・hover 色が効くので、ここで全部打ち消す */
	.gv2-more-arrow,
	.gv2-more-arrow:hover,
	.gv2-more-arrow:focus {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: calc(220px * 1.25 / 2);
		transform: translateY(-50%);
		box-sizing: border-box;
		width: 40px;
		height: 40px;
		margin: 0;
		padding: 0;
		border: 1px solid rgba(0, 0, 0, .06);
		border-radius: 50%;
		background: rgba(255, 255, 255, .94);
		box-shadow: 0 2px 10px rgba(0, 0, 0, .10);
		color: var(--gv2-ink);
		cursor: pointer;
		transition: opacity .3s, box-shadow .3s;
	}
	.gv2-more-arrow:hover {
		box-shadow: 0 3px 14px rgba(0, 0, 0, .16);
	}
	.gv2-more-arrow:focus:not(:focus-visible) {
		outline: none;
	}
	.gv2-more-arrow svg {
		display: block;
		width: 16px;
		height: 16px;
	}
	.gv2-more-arrow.is-prev { left: 6px; }
	.gv2-more-arrow.is-next { right: 6px; }
	.gv2-more-arrow.is-hidden {
		opacity: 0;
		pointer-events: none;
	}
}

/* 画面に余白があるときは、ボタンを写真の外側に半分はみ出させる */
@media (min-width: 1180px) {
	.gv2-more-arrow.is-prev { left: -20px; }
	.gv2-more-arrow.is-next { right: -20px; }
}

/* =========================================================
   施工例をさがす（カテゴリー） parts/gallery-v2-categories.php
   ========================================================= */
.gv2-cats {
	--gv2-ink: #333;
	--gv2-sub: #8a7a70;
	--gv2-accent: #a18080;
	--gv2-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
	margin: 0 0 3.5rem;
	font-family: var(--gv2-sans);
}
.gv2-cats-ch {
	margin-top: 1.5rem;
}
.gv2-cats-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.1rem 0;
	max-width: 34em;
	margin: 0 auto;
	padding: 0 16px;
	list-style: none;
}
.gv2-cats-list li {
	margin: 0;
	text-align: center;
}
.gv2-cats-list a {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	color: var(--gv2-ink);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}
.gv2-cats-img {
	display: block;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: url(../img/cat-icons.jpg) var(--pos) 0 / 600% 100% no-repeat #eee8e3;
	box-shadow: 0 0 0 1px rgba(138, 122, 112, .25);
	transition: transform .4s ease, box-shadow .3s;
}
.gv2-cats-list a.is-current .gv2-cats-img {
	box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--gv2-accent);
}
.gv2-cats-label {
	margin-top: .45rem;
	font-size: .625rem;
	letter-spacing: .06em;
	color: var(--gv2-ink);
}
.gv2-cats-list a.is-current .gv2-cats-label {
	color: var(--gv2-accent);
}
.gv2-cats-all {
	margin: 1.6rem 0 0;
	text-align: center;
	font-size: .6875rem;
	letter-spacing: .06em;
}
.gv2-cats-all a {
	color: var(--gv2-accent);
	text-decoration: underline;
	text-underline-offset: .25em;
}
@media (min-width: 980px) {
	.gv2-cats-list {
		grid-template-columns: repeat(6, 1fr);
		max-width: 760px;
	}
	.gv2-cats-img {
		width: 72px;
		height: 72px;
	}
	.gv2-cats-list a:hover .gv2-cats-img {
		transform: scale(1.05);
	}
}

/* =========================================================
   ページ上部のタイトル parts/gallery-v2-header.php
   ========================================================= */
.gv2-head {
	--gv2-accent: #a18080;
	padding: 1.25rem 16px 1.1rem;
	font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
}
.gv2-head-eyebrow {
	margin: 0 0 .35rem;
	font-size: .625rem;
	line-height: 1.6;
	letter-spacing: .12em;
	color: #8a7a70;
}
.gv2-head-eyebrow a {
	color: var(--gv2-accent);
}
.gv2-head-eyebrow span {
	margin: 0 .2em;
}
.gv2-head-title {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: "Quicksand", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
	font-size: 1.375rem;
	font-weight: 400; /* Quicksand は400のみ読み込み。500だと日本語側だけ中太になり欧文と揃わない */
	line-height: 1.35;
	letter-spacing: .02em;
	color: #333;
	word-break: auto-phrase;
}
.gv2-head-meta {
	margin: .4rem 0 0;
	font-family: "Quicksand", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
	font-size: .75rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: .04em;
	color: #8a7a70;
}
@media (min-width: 980px) {
	.gv2-head {
		max-width: 1100px;
		margin: 0 auto;
		padding: 2.25rem 0 1.5rem;
	}
	.gv2-head-title {
		font-size: 1.75rem;
	}
}

/* =========================================================
   施工例の一覧ページ parts/gallery-v2-archive.php
   ========================================================= */
.gv2a-page {
	--gv2-ink: #333;
	--gv2-sub: #8a7a70;
	--gv2-accent: #a18080;
	--gv2-ease: cubic-bezier(.165, .84, .44, 1);
	--gv2-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
	font-family: var(--gv2-sans);
	color: var(--gv2-ink);
}

/* 絞り込み: 小さなチップ。スマホは折り返して全項目を見せる */
.gv2a-nav {
	padding: 0 16px;
}
.gv2a-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.gv2a-nav li {
	margin: 0;
}
.gv2a-nav a,
.gv2a-nav span {
	display: block;
	padding: .45em 1em;
	border: 1px solid #ddd5cf;
	border-radius: 999px;
	font-family: "Quicksand", var(--gv2-sans);
	font-size: .6875rem;
	line-height: 1;
	letter-spacing: .04em;
	color: #6f625a;
	background: #fff;
	text-decoration: none;
	transition: border-color .2s, color .2s;
}
.gv2a-nav a:hover {
	border-color: var(--gv2-accent);
	color: var(--gv2-accent);
}
.gv2a-nav span.is-current {
	border-color: #4a403a;
	background: #4a403a;
	color: #fff;
}

.gv2a-desc {
	margin: 1.1rem 16px 1.5rem;
	font-size: .75rem;
	line-height: 1.9;
	color: #666;
}

.gv2a-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem 10px;
	margin: 0 16px 3rem;
	padding: 0;
	list-style: none;
}
.gv2a-grid li {
	margin: 0;
}
.gv2a-grid .gv2-card {
	display: block;
	max-width: none;
}

@media (min-width: 640px) {
	.gv2a-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem 16px;
	}
}
@media (min-width: 980px) {
	.gv2a-nav,
	.gv2a-desc,
	.gv2a-grid {
		max-width: 1100px;
		margin-left: auto;
		margin-right: auto;
		padding: 0;
	}
	.gv2a-nav a,
	.gv2a-nav span {
		font-size: .75rem;
	}
	.gv2a-desc {
		margin-top: 1.25rem;
		margin-bottom: 2rem;
		font-size: .8125rem;
	}
	.gv2a-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 2.5rem 20px;
		margin-bottom: 4rem;
	}
	.gv2a-grid .gv2-card-title {
		font-size: .8125rem;
	}
	.gv2a-grid .gv2-card-meta,
	.gv2a-grid .gv2-card-lead {
		font-size: .6875rem;
	}
}

/* =========================================================
   お気に入り（ハート） js/gallery-v2-fav.js
   写真の右下に重ねる。テーマ共通の button（Foundation）の余白・背景を打ち消す
   ========================================================= */
.gv2-ph {
	position: relative;
}
.gv2-fav,
.gv2-fav:hover,
.gv2-fav:focus {
	position: absolute;
	right: 4px;
	bottom: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.gv2-fav:focus:not(:focus-visible) {
	outline: none;
}
.gv2-fav svg {
	display: block;
	width: 24px;
	height: 24px;
	fill: rgba(0, 0, 0, .12);
	stroke: #fff;
	stroke-width: 1.6;
	stroke-linejoin: round;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .35));
	transition: fill .2s, stroke .2s, transform .2s;
}
.gv2-fav.is-on svg {
	fill: #e0606e;
	stroke: #e0606e;
}
.gv2-fav.is-pop svg {
	animation: gv2-fav-pop .45s var(--gv2-ease, ease);
}
@keyframes gv2-fav-pop {
	0% { transform: scale(1); }
	35% { transform: scale(1.3); }
	100% { transform: scale(1); }
}
@media (hover: hover) {
	.gv2-fav:hover svg {
		transform: scale(1.08);
	}
}

/* 拡大表示（PhotoSwipe）の上部バーのハート */
.pswp__button.pswp__gv2-fav,
.pswp__button.pswp__gv2-fav:hover,
.pswp__button.pswp__gv2-fav:focus {
	position: relative;
	right: auto;
	bottom: auto;
	width: 50px;
	height: 60px;
	border-radius: 0;
	background: transparent;
}
.pswp__button.pswp__gv2-fav svg {
	width: 22px;
	height: 22px;
	fill: transparent;
	filter: none;
}
.pswp__button.pswp__gv2-fav.is-on svg {
	fill: #e0606e;
	stroke: #e0606e;
}

/* 追加・解除の知らせ */
.gv2-fav-toast {
	position: fixed;
	left: 50%;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	z-index: 100001; /* PhotoSwipe（100000）より前 */
	display: flex;
	align-items: center;
	gap: 1em;
	padding: .75em 1.2em;
	border-radius: 999px;
	background: rgba(40, 34, 30, .92);
	color: #fff;
	font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
	font-size: .75rem;
	letter-spacing: .04em;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, 8px);
	transition: opacity .25s, transform .25s;
}
.gv2-fav-toast.is-show {
	opacity: 1;
	pointer-events: auto;
	transform: translate(-50%, 0);
}
.gv2-fav-toast a {
	color: #f3c9ce;
	text-decoration: underline;
}

/* 絞り込みチップのハート */
.gv2a-nav-heart {
	display: inline-block;
	width: 1.05em;
	height: 1.05em;
	margin: -.15em .3em 0 0;
	vertical-align: middle;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

/* =========================================================
   お気に入りページ parts/gallery-v2-fav.php
   ========================================================= */
.gv2f-desc-heart {
	color: #e0606e;
}
.gv2f-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25rem 10px;
	margin: 0 16px 3rem;
	padding: 0;
	list-style: none;
}
.gv2f-item {
	margin: 0;
	transition: opacity .3s;
}
.gv2f-item .gv2-link {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: #eee8e3;
	cursor: zoom-in;
}
.gv2f-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gv2f-item.is-removed .gv2-link {
	opacity: .35;
}
.gv2f-from {
	display: block;
	margin-top: .45rem;
	font-family: "Quicksand", var(--gv2-sans);
	font-size: .6875rem;
	letter-spacing: .03em;
	color: var(--gv2-sub);
}
.gv2f-from::after {
	content: " \203A";
}
.gv2f-empty {
	margin: 2rem 16px 4rem;
	text-align: center;
	font-size: .8125rem;
	color: #666;
}
.gv2f-empty a {
	color: var(--gv2-accent);
	text-decoration: underline;
}
.pswp__gv2-from {
	pointer-events: auto; /* キャプション欄は pointer-events:none なのでリンクだけ戻す */
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}
@media (min-width: 640px) {
	.gv2f-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.75rem 16px;
	}
}
@media (min-width: 980px) {
	.gv2f-grid {
		max-width: 1100px;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 2.25rem 20px;
		margin: 0 auto 4rem;
	}
	.gv2f-empty {
		max-width: 1100px;
		margin-left: auto;
		margin-right: auto;
	}
}
