/* Informational pages: legal documents, About and the physical store. */
.faq-page__hero {
	background: linear-gradient(122deg, #123d24 0%, #1c6330 62%, #318443 100%);
}
.faq-page__eyebrow {
	margin: 0 0 10px;
	color: rgba(255,255,255,.72);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.faq-page__layout {
	display: grid;
	grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
	align-items: start;
	gap: clamp(24px, 5vw, 56px);
	max-width: 1100px;
	margin: -42px auto 0;
	padding-bottom: 72px;
	position: relative;
}
.faq-page__toc {
	align-self: start;
	position: sticky;
	top: 76px;
	max-height: calc(100vh - 96px);
	max-height: calc(100dvh - 96px);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
	padding: 20px;
	border: 1px solid #d9e6db;
	border-radius: 14px;
	background: #f7fbf7;
	color: #173d20;
}
.faq-page__toc ul { display: grid; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.faq-page__toc a, .faq-page__related a { overflow-wrap: anywhere; color: #1d6a32; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.faq-page__article { min-width: 0; padding: clamp(24px, 5vw, 54px); border: 1px solid #d9e6db; border-radius: 18px; background: #fff; box-shadow: 0 18px 52px rgba(18,61,36,.1); color: #3f4d42; line-height: 1.72; }
.faq-page__intro { margin-top: 0; font-size: 1.08rem; }
.faq-page__related { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 20px 0 38px; padding: 16px 18px; border-left: 4px solid #2e7d32; background: #f7fbf7; }
.faq-page__related strong { flex-basis: 100%; color: #173d20; }
.faq-page__section { scroll-margin-top: 86px; }
.faq-page__section h2 { margin: 2.25em 0 .75em; padding-bottom: .5em; border-bottom: 1px solid #e2ece3; color: #173d20; font-size: clamp(1.45rem, 2.6vw, 2rem); text-wrap: balance; }
.faq-page__item { border-bottom: 1px solid #e2ece3; }
.faq-page__question { margin: 0; }
.faq-page__trigger { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: space-between; gap: 20px; overflow-wrap: anywhere; padding: 18px 0; border: 0; background: transparent; color: #1d5a2b; font: inherit; font-weight: 700; text-align: left; cursor: pointer; touch-action: manipulation; }
.faq-page__trigger::after { content: '−'; flex: 0 0 auto; color: #2e7d32; font-size: 1.35rem; }
.faq-page__trigger[aria-expanded="false"]::after { content: '+'; }
.faq-page__trigger:hover { color: #123d24; }
.faq-page__trigger:focus-visible { outline: 3px solid #f6c453; outline-offset: 3px; border-radius: 4px; }
.faq-page__item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; color: #1d5a2b; font-weight: 700; cursor: pointer; list-style: none; }
.faq-page__item summary::-webkit-details-marker { display: none; }
.faq-page__item summary::after { content: '+'; flex: 0 0 auto; color: #2e7d32; font-size: 1.35rem; }
.faq-page__item[open] summary::after { content: '−'; }
.faq-page__item summary:focus-visible, .faq-page__toc a:focus-visible, .faq-page__related a:focus-visible, .faq-page__cta .button:focus-visible { outline: 3px solid #f6c453; outline-offset: 3px; border-radius: 4px; }
.faq-page__answer { padding: 0 32px 18px 0; }
.faq-page__answer p { margin: 0; }
.faq-page__cta { margin-top: 48px; padding: 28px; border-radius: 14px; background: #edf7ee; }
.faq-page__cta h2 { margin-top: 0; color: #173d20; text-wrap: balance; }
.faq-page__cta .button { display: inline-block; padding: 11px 18px; border-radius: 8px; background: #2e7d32; color: #fff; font-weight: 700; text-decoration: none; }
.faq-page__cta-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.faq-page__cta .button:hover { background: #1d642d; }
.faq-page__cta .button--secondary { border: 1px solid #2e7d32; background: #fff; color: #1d642d; }
.faq-page__cta .button--secondary:hover { background: #e4f2e6; }
@media (max-width: 900px) {
	.faq-page__layout { display: block; margin-top: -28px; }
	.faq-page__toc { position: static; max-height: none; overflow: visible; margin-bottom: 20px; scrollbar-gutter: auto; }
	.faq-page__toc ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
	.faq-page__article { padding: 22px 18px; }
	.faq-page__section { scroll-margin-top: 72px; }
}
@media (max-width: 560px) {
	.faq-page__layout { padding-bottom: 48px; }
	.faq-page__toc { padding: 18px; }
	.faq-page__toc ul { grid-template-columns: 1fr; }
	.faq-page__related { display: grid; gap: 10px; padding: 14px 16px; }
	.faq-page__trigger { gap: 12px; padding: 16px 0; }
	.faq-page__answer { padding-right: 0; }
	.faq-page__cta { margin-top: 36px; padding: 22px 18px; }
	.faq-page__cta-actions { display: grid; }
	.faq-page__cta .button { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.faq-page__item summary { transition: none; }
}
.page-wrapper--legal,
.page-wrapper--about {
	background: linear-gradient(180deg, #f2f8f3 0, #ffffff 360px);
}

.page-wrapper--legal .page-hero,
.page-wrapper--about .page-hero {
	padding: 58px 0 84px;
	background: linear-gradient(122deg, #123d24 0%, #1c6330 62%, #318443 100%);
}

.page-wrapper--legal .page-hero__title,
.page-wrapper--about .page-hero__title {
	max-width: 900px;
	color: #fff;
	font-size: clamp(2rem, 4.4vw, 3.25rem);
	letter-spacing: -.035em;
}

.page-wrapper--legal .page-hero__subtitle,
.page-wrapper--about .page-hero__subtitle {
	max-width: 680px;
	margin: 12px 0 0;
	color: rgba(255, 255, 255, .8);
	font-size: 1.02rem;
}

.page-layout--legal,
.page-layout--about {
	max-width: 980px;
	margin: -42px auto 0;
	padding-bottom: 72px;
}

.page-article.page-wrapper--legal,
.page-article.page-wrapper--about {
	overflow: hidden;
	border: 1px solid #d9e6db;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 18px 52px rgba(18, 61, 36, .1);
}

.page-article.page-wrapper--legal .entry-content,
.page-article.page-wrapper--about .entry-content {
	padding: clamp(24px, 5vw, 54px);
	color: #3f4d42;
	font-size: 1rem;
	line-height: 1.78;
}

.page-article.page-wrapper--legal .entry-content > h2:first-child,
.page-article.page-wrapper--about .entry-content > h2:first-child {
	margin-top: 0;
}

.page-article.page-wrapper--legal .entry-content h2,
.page-article.page-wrapper--about .entry-content h2 {
	margin: 2.25em 0 .75em;
	padding-bottom: .5em;
	border-bottom: 1px solid #e2ece3;
	color: #173d20;
	font-size: clamp(1.45rem, 2.6vw, 2rem);
	letter-spacing: -.025em;
}

.page-article.page-wrapper--legal .entry-content h3,
.page-article.page-wrapper--about .entry-content h3 {
	margin: 1.9em 0 .6em;
	color: #1d5a2b;
	font-size: 1.22rem;
}

.page-article.page-wrapper--legal .entry-content h4,
.page-article.page-wrapper--about .entry-content h4 {
	margin: 1.5em 0 .45em;
	color: #315e3b;
	font-size: 1rem;
}

.page-article.page-wrapper--legal .entry-content p,
.page-article.page-wrapper--about .entry-content p {
	max-width: 76ch;
	margin-bottom: 1.2em;
}

.page-article.page-wrapper--legal .entry-content ul,
.page-article.page-wrapper--about .entry-content ul {
	display: grid;
	gap: 9px;
	margin: 1.1em 0 1.55em;
	padding: 18px 20px;
	border: 1px solid #dcebdc;
	border-radius: 12px;
	background: #f7fbf7;
	list-style: none;
}

.page-article.page-wrapper--legal .entry-content li,
.page-article.page-wrapper--about .entry-content li {
	position: relative;
	padding-left: 24px;
}

.page-article.page-wrapper--legal .entry-content li::before,
.page-article.page-wrapper--about .entry-content li::before {
	position: absolute;
	left: 0;
	content: '✓';
	color: #28752e;
	font-weight: 800;
}

.page-article.page-wrapper--legal .entry-content a,
.page-article.page-wrapper--about .entry-content a {
	color: #176329;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: #a7d5ac;
	text-underline-offset: 3px;
}

.page-article.page-wrapper--legal .entry-content a:focus-visible,
.page-article.page-wrapper--about .entry-content a:focus-visible {
	outline: 3px solid #bce4c4;
	outline-offset: 3px;
	border-radius: 2px;
}

.page-wrapper--about .post-thumbnail {
	margin: -42px auto 0;
	padding: 0 24px;
	max-width: 1028px;
}

.page-wrapper--about .post-thumbnail img {
	width: 100%;
	max-height: 450px;
	border: 7px solid #fff;
	border-radius: 18px;
	box-shadow: 0 18px 50px rgba(18, 61, 36, .16);
	object-fit: cover;
}

.store-page {
	background: linear-gradient(180deg, #f1f8f2 0, #fff 580px);
}

.store-page-details article,
.store-page-visit,
.store-page-contact {
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.store-page-details article:hover,
.store-page-visit:hover,
.store-page-contact:hover {
	transform: translateY(-3px);
	border-color: #b9d8be;
	box-shadow: 0 14px 28px rgba(18, 61, 36, .09);
}

@media (max-width: 700px) {
	.page-wrapper--legal .page-hero,
	.page-wrapper--about .page-hero {
		padding: 38px 0 62px;
	}

	.page-layout--legal,
	.page-layout--about {
		margin-top: -28px;
		padding-bottom: 46px;
	}

	.page-article.page-wrapper--legal,
	.page-article.page-wrapper--about {
		border-radius: 14px;
	}

	.page-article.page-wrapper--legal .entry-content,
	.page-article.page-wrapper--about .entry-content {
		padding: 24px 20px;
		font-size: .96rem;
	}

	.page-wrapper--about .post-thumbnail {
		margin-top: -28px;
		padding: 0 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.store-page-details article,
	.store-page-visit,
	.store-page-contact {
		transition: none;
	}
}
