:root {
	--hgv-paper: #f6f3e9;
	--hgv-paper-deep: #ece6d6;
	--hgv-ink: #24342b;
	--hgv-ink-soft: #536057;
	--hgv-green: #284d3a;
	--hgv-green-light: #a9c45a;
	--hgv-gold: #c5a15a;
	--hgv-line: rgba(36, 52, 43, 0.18);
	--hgv-white: #fffefa;
}

body.hagukumu-village-active .page-header,
body.hagukumu-village-active .breadcrumb {
	display: none;
}

body.hagukumu-village-active .site-body {
	padding-bottom: 0;
	padding-top: 0;
}

body.hagukumu-village-active .site-body-container,
body.hagukumu-village-active .main-section,
body.hagukumu-village-active main {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
	width: 100%;
}

.hagukumu-page {
	background:
		radial-gradient(circle at 20% 10%, rgba(255, 255, 255, 0.8), transparent 28%),
		repeating-linear-gradient(
			92deg,
			rgba(80, 68, 42, 0.018) 0,
			rgba(80, 68, 42, 0.018) 1px,
			transparent 1px,
			transparent 7px
		),
		var(--hgv-paper);
	color: var(--hgv-ink);
	font-family: "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;
	margin: 0 calc(50% - 50vw) !important;
	max-width: none !important;
	overflow: hidden;
	width: 100vw;
}

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

.hagukumu-page :where(h1, h2, h3, p) {
	margin-top: 0;
}

.hagukumu-page a {
	text-decoration: none;
}

.hgv-hero {
	display: grid !important;
	gap: 0 !important;
	grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
	margin: 0 !important;
	min-height: min(820px, 90vh);
	padding: 0 clamp(24px, 5vw, 76px);
}

.hgv-hero-copy {
	align-self: center;
	padding: clamp(75px, 10vh, 115px) clamp(20px, 5vw, 85px) 70px 0;
}

.hgv-eyebrow,
.hgv-section-label,
.hgv-card-label,
.hgv-art-kicker {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.2em;
}

.hgv-eyebrow {
	align-items: center;
	display: flex;
	gap: 14px;
	margin-bottom: 30px;
}

.hgv-eyebrow::before {
	background: var(--hgv-gold);
	content: "";
	height: 1px;
	width: 46px;
}

.hagukumu-page .hgv-title,
.hagukumu-page .hgv-heading,
.hagukumu-page h3 {
	color: inherit;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-weight: 500;
}

.hagukumu-page .hgv-title {
	font-size: clamp(45px, 5.6vw, 80px);
	letter-spacing: -0.055em;
	line-height: 1.32;
	margin-bottom: 34px;
}

.hgv-lead {
	color: var(--hgv-ink-soft);
	font-size: clamp(14px, 1.3vw, 17px);
	line-height: 2;
}

.hgv-buttons {
	margin-top: 34px;
}

.hgv-primary-button .wp-block-button__link,
.hgv-line-button .wp-block-button__link {
	background: var(--hgv-green) !important;
	border-radius: 999px !important;
	color: var(--hgv-white) !important;
	font-size: 14px;
	font-weight: 700;
	padding: 17px 27px !important;
}

.hgv-note {
	color: var(--hgv-ink-soft);
	font-size: 11px;
	letter-spacing: 0.08em;
	margin-top: 20px;
}

.hgv-hero-art {
	align-self: stretch;
	background:
		repeating-radial-gradient(
			ellipse at 50% 112%,
			transparent 0,
			transparent 34px,
			rgba(255, 255, 255, 0.16) 36px,
			transparent 38px
		),
		var(--hgv-green);
	color: var(--hgv-white);
	min-height: 620px;
	overflow: hidden;
	padding: 35px;
	position: relative;
}

.hgv-hero-art::before {
	background: var(--hgv-green-light);
	border-radius: 50%;
	content: "";
	height: clamp(170px, 20vw, 270px);
	position: absolute;
	right: -5%;
	top: 18%;
	width: clamp(170px, 20vw, 270px);
}

.hgv-art-kicker {
	position: relative;
	z-index: 2;
}

.hgv-art-symbol {
	bottom: 11%;
	color: var(--hgv-paper);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(170px, 20vw, 290px);
	font-weight: 500;
	left: 11%;
	line-height: 0.8;
	opacity: 0.92;
	position: absolute;
}

.hgv-art-words {
	bottom: 25px;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.16em;
	position: absolute;
}

.hgv-section {
	margin: 0 !important;
	max-width: none !important;
	padding: clamp(88px, 10vw, 145px) clamp(24px, 8vw, 120px);
}

.hgv-section-label {
	border-bottom: 1px solid var(--hgv-ink);
	display: inline-block;
	margin-bottom: 48px;
	padding-bottom: 10px;
}

.hgv-kicker {
	color: var(--hgv-gold);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin-bottom: 24px;
}

.hagukumu-page .hgv-heading {
	font-size: clamp(36px, 4.5vw, 65px);
	letter-spacing: -0.055em;
	line-height: 1.45;
}

.hgv-two-columns {
	display: grid !important;
	gap: 40px clamp(55px, 8vw, 120px) !important;
	grid-template-columns: minmax(340px, 1fr) minmax(280px, 0.7fr);
	margin: 0 !important;
}

.hgv-body-copy,
.hgv-section-lead,
.hgv-vision .hgv-two-columns {
	color: var(--hgv-ink-soft);
	font-size: 14px;
	line-height: 2.1;
}

.hgv-section-intro {
	align-items: end !important;
}

.hgv-village {
	background: var(--hgv-paper-deep);
	border-bottom: 1px solid var(--hgv-line);
	border-top: 1px solid var(--hgv-line);
	scroll-margin-top: 88px;
}

.hgv-card-grid {
	display: grid !important;
	gap: 1px !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 65px 0 0 !important;
}

.hgv-card {
	background: var(--hgv-white);
	border-top: 4px solid var(--hgv-gold);
	min-height: 345px;
	padding: 34px clamp(24px, 3vw, 40px);
}

.hgv-card-label {
	color: var(--hgv-gold);
	margin-bottom: 38px;
}

.hagukumu-page .hgv-card h3 {
	font-size: clamp(22px, 2vw, 29px);
	line-height: 1.55;
	margin-bottom: 20px;
}

.hgv-card > p:last-child {
	color: var(--hgv-ink-soft);
	font-size: 12px;
	line-height: 1.95;
}

.hgv-card-dark {
	background: var(--hgv-green);
	border-color: var(--hgv-green-light);
	color: var(--hgv-white);
}

.hgv-card-dark .hgv-card-label {
	color: var(--hgv-green-light);
}

.hgv-card-dark > p:last-child {
	color: rgba(255, 255, 255, 0.72);
}

.hgv-principles {
	background: var(--hgv-gold);
	color: var(--hgv-white);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.16em;
	margin: 0 !important;
	max-width: none !important;
	padding: 16px clamp(24px, 6vw, 90px);
}

.hgv-principles p {
	margin: 0;
}

.hgv-ways,
.hgv-partners {
	background: var(--hgv-white);
}

.hgv-section-lead {
	max-width: 560px;
}

.hgv-benefit-grid .hgv-card {
	background: var(--hgv-paper);
	min-height: 390px;
}

.hgv-members {
	background: var(--hgv-green);
	color: var(--hgv-white);
}

.hgv-members .hgv-section-label {
	border-color: rgba(255, 255, 255, 0.6);
}

.hgv-members .hgv-kicker,
.hgv-members .hgv-card-label {
	color: var(--hgv-green-light);
}

.hgv-members .hgv-section-lead,
.hgv-members .hgv-small-note {
	color: rgba(255, 255, 255, 0.67);
}

.hgv-plan-grid {
	margin-top: 55px !important;
}

.hgv-plan {
	border: 1px solid rgba(255, 255, 255, 0.25);
	min-height: 315px;
	padding: 34px;
}

.hagukumu-page .hgv-plan h3 {
	font-size: 27px;
	margin: 25px 0;
}

.hagukumu-page .hgv-plan h3 strong {
	color: var(--hgv-green-light);
	font-size: 62px;
	font-weight: 400;
}

.hgv-price {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 20px;
}

.hgv-price strong {
	color: var(--hgv-green-light);
	font-size: 42px;
	font-weight: 400;
}

.hgv-plan > p:last-child {
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	color: rgba(255, 255, 255, 0.65);
	font-size: 11px;
	padding-top: 18px;
}

.hgv-plan-featured {
	background: var(--hgv-white);
	color: var(--hgv-ink);
	transform: translateY(-10px);
}

.hgv-plan-featured > p:last-child {
	border-color: var(--hgv-line);
	color: var(--hgv-ink-soft);
}

.hgv-small-note {
	font-size: 11px;
	line-height: 1.8;
	margin-top: 18px;
}

.hgv-fee-use {
	background: rgba(255, 255, 255, 0.08);
	border-left: 3px solid var(--hgv-green-light);
	margin: 55px 0 0 !important;
	padding: 30px 34px;
}

.hagukumu-page .hgv-fee-use h3 {
	font-size: clamp(22px, 2.4vw, 32px);
	margin-bottom: 15px;
}

.hgv-fee-use > p:last-child {
	color: rgba(255, 255, 255, 0.7);
	font-size: 12px;
	line-height: 2;
}

.hagukumu-page .hgv-subheading {
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 25px;
	margin: 65px 0 30px;
	padding-top: 45px;
}

.hgv-steps {
	display: grid !important;
	gap: 18px !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0 !important;
}

.hgv-steps .wp-block-column {
	border-top: 1px solid rgba(255, 255, 255, 0.3);
	color: rgba(255, 255, 255, 0.67);
	font-size: 12px;
	line-height: 1.85;
	padding-top: 18px;
}

.hgv-steps strong {
	color: var(--hgv-white);
	font-size: 13px;
}

.hgv-partners .hgv-card {
	border-top: 1px solid var(--hgv-ink);
}

.hgv-vision {
	background: var(--hgv-paper-deep);
	border-bottom: 1px solid var(--hgv-line);
	border-top: 1px solid var(--hgv-line);
}

.hagukumu-page .hgv-vision-heading {
	font-size: clamp(39px, 5vw, 72px);
	margin-bottom: 50px;
}

.hgv-four-words {
	border-top: 1px solid var(--hgv-ink);
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	margin-top: 45px !important;
}

.hgv-four-words p {
	border-right: 1px solid var(--hgv-line);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(21px, 2.2vw, 30px);
	letter-spacing: 0.12em;
	margin: 0;
	padding: 24px 10px;
	text-align: center;
}

.hgv-four-words p:last-child {
	border-right: 0;
}

.hgv-faq {
	background: var(--hgv-paper);
}

.hgv-faq .hgv-heading {
	margin-bottom: 55px;
}

.hgv-faq-item {
	border-bottom: 1px solid var(--hgv-line);
	margin: 0 !important;
	padding: 0 !important;
}

.hgv-faq-item:first-of-type {
	border-top: 1px solid var(--hgv-ink);
}

.hgv-faq-item summary {
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	list-style-position: inside;
	padding: 25px 4px;
}

.hgv-faq-item p {
	color: var(--hgv-ink-soft);
	font-size: 13px;
	line-height: 2;
	max-width: 850px;
	padding: 0 30px 25px;
}

.hgv-contact {
	background: var(--hgv-green-light);
	padding-bottom: clamp(75px, 9vw, 120px);
	padding-top: clamp(75px, 9vw, 120px);
}

.hgv-contact .hgv-heading {
	margin-bottom: 25px;
}

.hgv-contact-buttons {
	gap: 12px;
	margin-top: 35px;
}

.hgv-mail-button .wp-block-button__link {
	background: transparent !important;
	border: 1px solid rgba(36, 52, 43, 0.5);
	border-radius: 999px !important;
	color: var(--hgv-ink) !important;
	font-size: 14px;
	font-weight: 700;
	padding: 16px 25px !important;
}

@media (max-width: 900px) {
	.hgv-hero {
		grid-template-columns: 1fr;
		padding: 0 18px 18px;
	}

	.hgv-hero-copy {
		padding: 70px 6px 55px;
	}

	.hgv-hero-art {
		min-height: 460px;
	}

	.hgv-two-columns,
	.hgv-card-grid {
		grid-template-columns: 1fr;
	}

	.hgv-card {
		min-height: 0;
	}

	.hgv-plan-featured {
		transform: none;
	}

	.hgv-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.hgv-hero {
		min-height: auto;
	}

	.hagukumu-page .hgv-title {
		font-size: clamp(42px, 12vw, 60px);
	}

	.hgv-hero-art {
		min-height: 400px;
	}

	.hgv-section {
		padding-left: 23px;
		padding-right: 23px;
	}

	.hgv-principles {
		justify-content: flex-start !important;
	}

	.hgv-principles p:nth-child(even),
	.hgv-principles p:nth-child(n + 6) {
		display: none;
	}

	.hgv-steps,
	.hgv-four-words {
		grid-template-columns: 1fr;
	}

	.hgv-four-words p {
		border-bottom: 1px solid var(--hgv-line);
		border-right: 0;
	}

	.hgv-contact-buttons {
		align-items: stretch;
		flex-direction: column;
	}

	.hgv-contact-buttons .wp-block-button,
	.hgv-contact-buttons .wp-block-button__link {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hagukumu-page * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Photo edition 1.1
 * The images live inside this plugin, so an existing inserted page gains the
 * photo layout as soon as the plugin is replaced.
 */
.hgv-hero-art {
	background:
		linear-gradient(180deg, rgba(19, 38, 28, 0.08), rgba(19, 38, 28, 0.58)),
		url("./images/hero-farmers.jpeg") center 38% / cover no-repeat;
}

.hgv-hero-art::before {
	background: linear-gradient(145deg, rgba(40, 77, 58, 0.03), rgba(40, 77, 58, 0.62));
	border-radius: 0;
	inset: 0;
	height: auto;
	width: auto;
}

.hgv-art-symbol,
.hgv-art-words {
	z-index: 2;
}

.hgv-art-symbol {
	opacity: 0.78;
	text-shadow: 0 3px 28px rgba(15, 31, 22, 0.35);
}

.hgv-art-words {
	text-shadow: 0 1px 10px rgba(15, 31, 22, 0.7);
}

.hgv-origin::after {
	background:
		linear-gradient(180deg, rgba(29, 48, 36, 0.02), rgba(29, 48, 36, 0.18)),
		url("./images/story-hazakake.jpeg") center 64% / cover no-repeat;
	content: "";
	display: block;
	height: clamp(280px, 34vw, 500px);
	margin-top: clamp(48px, 7vw, 90px);
	width: 100%;
}

.hgv-benefit-grid .hgv-card,
.hgv-partners .hgv-card {
	--hgv-card-photo-height: clamp(210px, 18vw, 275px);
	overflow: hidden;
	padding-top: calc(var(--hgv-card-photo-height) + 34px);
	position: relative;
}

.hgv-benefit-grid .hgv-card::before,
.hgv-partners .hgv-card::before {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	content: "";
	height: var(--hgv-card-photo-height);
	inset: 0 0 auto;
	position: absolute;
}

.hgv-benefit-grid .hgv-card:nth-child(1)::before {
	background-image:
		linear-gradient(180deg, rgba(24, 45, 33, 0), rgba(24, 45, 33, 0.16)),
		url("./images/member-field.jpeg");
	background-position: center 48%;
}

.hgv-benefit-grid .hgv-card:nth-child(2)::before {
	background-image:
		linear-gradient(180deg, rgba(24, 45, 33, 0), rgba(24, 45, 33, 0.12)),
		url("./images/member-bounty.jpeg");
	background-position: center 55%;
}

.hgv-benefit-grid .hgv-card:nth-child(3)::before {
	background-image:
		linear-gradient(180deg, rgba(24, 45, 33, 0), rgba(24, 45, 33, 0.14)),
		url("./images/member-experience.jpeg");
	background-position: center 43%;
}

.hgv-partners .hgv-card:nth-child(1)::before {
	background-image:
		linear-gradient(180deg, rgba(24, 45, 33, 0), rgba(24, 45, 33, 0.13)),
		url("./images/partner-sell.jpeg");
	background-position: center 58%;
}

.hgv-partners .hgv-card:nth-child(2)::before {
	background-image:
		linear-gradient(180deg, rgba(24, 45, 33, 0), rgba(24, 45, 33, 0.12)),
		url("./images/partner-create.jpeg");
	background-position: center 50%;
}

.hgv-partners .hgv-card:nth-child(3)::before {
	background-image:
		linear-gradient(180deg, rgba(24, 45, 33, 0), rgba(24, 45, 33, 0.13)),
		url("./images/partner-field.jpeg");
	background-position: center 45%;
}

@media (max-width: 900px) {
	.hgv-benefit-grid .hgv-card,
	.hgv-partners .hgv-card {
		--hgv-card-photo-height: clamp(225px, 45vw, 380px);
	}
}

@media (max-width: 560px) {
	.hgv-hero-art {
		background-position: center 34%;
	}

	.hgv-origin::after {
		height: 280px;
	}

	.hgv-benefit-grid .hgv-card,
	.hgv-partners .hgv-card {
		--hgv-card-photo-height: 220px;
	}
}
