/* Shared page navigation and links; the approved home layout stays in style.css. */
#navigation > a[aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: #ff9a30;
	text-decoration-thickness: 3px;
	text-underline-offset: 8px
}
.button[data-detail-link] {
	white-space: nowrap;
	flex-wrap: nowrap;
	gap: clamp(4px, 1vw, 14px);
	padding-inline: clamp(8px, 2vw, 30px)
}
.button[data-detail-link] span {
	flex-shrink: 0;
	margin-left: 0
}
.subpage {
	color: #55351f
}
.sub-inner {
	width: 90%;
	max-width: 1280px;
	margin: auto
}
.subpage section {
	scroll-margin-top: 25px
}
.page-hero {
	min-height: 300px;
	height: clamp(300px, 27vw, 410px);
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background: url('../img/page_hero.png') center bottom/100% 100% no-repeat
}
.page-hero-copy {
	position: relative;
	z-index: 1;
	margin-top: -35px;
	max-width: 76%
}
.page-hero h1 {
	font-size: clamp(30px, 3.6vw, 54px);
	letter-spacing: .16em;
	line-height: 1.5;
	font-weight: 700
}
.about-page .page-hero h1 {
	font-size: clamp(25px, 3vw, 45px);
	letter-spacing: .05em
}
.page-english {
	font-size: clamp(17px, 1.8vw, 26px);
	letter-spacing: .06em
}
.page-tagline {
	font-size: clamp(14px, 1.5vw, 22px);
	margin-top: 17px;
	letter-spacing: .1em;
	font-weight: 700
}
.page-mascot {
	position: absolute;
	width: 19%;
	max-width: 245px;
	right: 5%;
	bottom: 3%
}
.about-page .page-mascot {
	width: 16%;
	right: 3%
}
.breadcrumbs {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	font-size: 12px;
	color: #9a815a;
	padding: 22px 0 28px
}
.breadcrumbs a:hover {
	color: #f66b22
}
.sub-heading {
	font-size: clamp(20px, 2vw, 28px);
	font-weight: 700;
	display: flex;
	align-items: center;
	gap: 12px;
	line-height: 1.5;
	margin-bottom: 18px
}
.sub-heading small {
	font-size: .7em
}
.heading-mark {
	color: #bd751c;
	font-size: 1.5em;
	line-height: 1
}
.flower-mark {
	color: #ffc928;
	font-size: 1.65em;
	line-height: 1
}
.paper-panel {
	background: #fff8d9;
	border-radius: 42px 65px 40px 55px;
	background-image: radial-gradient(ellipse at 90% 10%, #fffefa 0, transparent 70%)
}
.eyebrow {
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6
}
.brand-heading {
	font-size: clamp(25px, 2.6vw, 38px);
	line-height: 1.4;
	margin: 4px 0 22px
}
.brand-heading small {
	font-size: 13px;
	display: block;
	margin-top: 3px
}
.handwritten {
	font-size: clamp(22px, 2.2vw, 32px);
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.6;
	margin-bottom: 20px
}
.green {
	color: #299644
}
.pink {
	color: #e8527f
}
.muted, .section-note {
	font-size: 13px;
	color: #8b785a;
	line-height: 1.8
}
.section-note {
	margin: -7px 0 18px
}
.text-link {
	display: inline-block;
	color: #c96022;
	font-weight: 700;
	line-height: 1.7;
	border-bottom: 1px solid #efbd74;
	padding-bottom: 2px
}
.text-link:hover {
	color: #ed4919;
	border-color: currentColor
}
.service-intro {
	display: grid;
	grid-template-columns: 1.45fr 1fr;
	gap: 40px;
	align-items: center;
	margin-bottom: 45px
}
.moon-intro {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 20px;
	padding: 30px
}
.moon-intro > div > p:last-child {
	font-size: 14px;
	line-height: 1.95
}
.intro-art {
	position: relative;
	align-self: end
}
.organic-photo {
	width: 100%;
	height: 300px;
	object-fit: cover;
	border-radius: 46% 40% 28% 35% / 25% 28% 34% 26%
}
.mini-bubble {
	display: block;
	background: #fffdf7;
	border: 2px solid #f2d88c;
	border-radius: 48% 45% 47% 40%;
	padding: 15px 22px;
	text-align: center;
	font-weight: 700;
	line-height: 1.8;
	font-size: 15px;
	transform: rotate(-5deg)
}
.intro-art .mini-bubble {
	position: absolute;
	top: -75px;
	right: 8%;
	white-space: nowrap
}
.art-sprout {
	position: absolute;
	right: -22px;
	bottom: -18px;
	width: 65px
}
.eligibility {
	position: relative;
	padding: 12px 28px 30px 0
}
.eligibility .sub-heading {
	font-size: 22px
}
.check-list {
	list-style: none;
	padding: 0;
	margin: 20px 0
}
.check-list li {
	position: relative;
	padding: 0 0 15px 30px;
	font-size: 16px
}
.check-list li:before {
	content: '✓';
	position: absolute;
	left: 0;
	top: 4px;
	color: #ff7a2b;
	background: #ffe86b;
	border-radius: 45%;
	width: 21px;
	height: 21px;
	font-size: 16px;
	line-height: 21px;
	text-align: center;
	font-weight: bold
}
.eligibility .text-link {
	margin-top: 22px;
	font-size: 14px
}
.side-leaf {
	position: absolute;
	width: 70px;
	right: -20px;
	bottom: -38px;
	z-index: -1
}
.service-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 36px;
	margin-bottom: 45px;
	align-items: start
}
.schedule {
	border: 1px solid #e8d6ab;
	border-radius: 18px;
	overflow: hidden;
	background: #fff
}
.schedule table {
	border-collapse: collapse;
	width: 100%;
	font-size: 14px
}
.schedule th, .schedule td {
	padding: 11px 15px;
	text-align: left;
	border-bottom: 1px solid #ebdfc6
}
.schedule tr:last-child > * {
	border-bottom: 0
}
.schedule th {
	width: 31%;
	white-space: nowrap;
	background: #fff8df;
	font-weight: 500
}
.schedule td strong {
	font-size: 14px
}
.schedule td span {
	font-size: 12px;
	color: #827154;
	display: block
}
.day-section > .section-note:last-child {
	margin-top: 12px;
	font-size: 11px
}
.work-section {
	padding: 25px 22px
}
.work-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px
}
.work-grid article {
	min-width: 0;
	text-align: center;
	scroll-margin-top: 120px
}
.work-grid img {
	width: 100%;
	aspect-ratio: 1.12;
	object-fit: contain
}
.work-grid h3 {
	font-size: 12px;
	margin-top: 10px;
	line-height: 1.6
}
.work-grid p {
	font-size: 11px;
	line-height: 1.7;
	margin-top: 6px
}
.free-art {
	aspect-ratio: 1.12;
	position: relative;
	display: grid;
	place-items: center;
	border-radius: 45% 50% 40% 45%;
	background: #fff0a4;
	font-size: 52px;
	color: #e88540
}
.free-art img {
	position: absolute;
	width: 32px;
	right: 4px;
	bottom: 3px
}
.gallery-heading {
	margin-top: 35px;
	font-size: 22px
}
.works-gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px
}
.works-gallery img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 15px 10px 18px 12px
}
.gallery-instagram {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-size: 13px;
	margin-top: 20px
}
.gallery-instagram img {
	width: 32px
}
.gallery-instagram small {
	font-size: 12px
}
.peace-service {
	position: relative;
	display: grid;
	grid-template-columns: 1fr .85fr 1.5fr;
	gap: 24px;
	padding: 36px;
	background: #fff0f0;
	border: 1px solid #ffe2e5;
	border-radius: 55px 40px 65px 45px;
	margin-bottom: 50px;
	align-items: center
}
.peace-service-intro .brand-heading {
	margin-bottom: 15px
}
.peace-service-intro .brand-heading small {
	display: inline;
	font-size: 15px
}
.peace-service-intro .handwritten {
	font-size: 23px
}
.peace-service-intro > p:last-child {
	font-size: 13px;
	line-height: 1.9
}
.peace-service-photo {
	position: relative
}
.peace-service-photo > img {
	width: 135%;
	max-width: 135%;
	margin-left: -15%
}
.peace-service-photo .mini-bubble {
	font-size: 12px;
	padding: 14px 10px;
	transform: rotate(4deg);
	border-color: #f8b5c7;
	margin-top: -5%
}
.peace-service-detail .sub-heading {
	font-size: 22px
}
.peace-services {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px
}
.peace-services li {
	background: #fff;
	border-radius: 48%;
	min-height: 115px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 11px;
	font-weight: 700
}
.peace-services li > span {
	font-size: 35px;
	line-height: 1.4;
	color: #37b5d9
}
.peace-services li:nth-child(2) > span {
	color: #5ba647
}
.peace-services li:nth-child(3) > span {
	color: #f99a32
}
.peace-services li:nth-child(4) > span {
	color: #ee6992
}
.audience-heading {
	margin-top: 25px;
	margin-bottom: 10px
}
.peace-service-detail > p {
	font-size: 14px
}
.peace-service-detail .text-link {
	margin-top: 15px;
	font-size: 13px
}
.peace-service-leaf {
	position: absolute;
	width: 60px;
	right: -10px;
	bottom: -15px
}
.company-section {
	position: relative;
	margin-bottom: 38px
}
.company-table-wrap {
	border: 1px solid #e2d7c4;
	border-radius: 12px;
	overflow: hidden;
	background: white
}
.company-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px
}
.company-table th, .company-table td {
	padding: 14px 28px;
	text-align: left;
	border-bottom: 1px solid #e8e2d7;
	vertical-align: top
}
.company-table tr:last-child > * {
	border-bottom: 0
}
.company-table th {
	background: #fff6dc;
	width: 23%
}
.company-table ul {
	padding-left: 20px
}
.company-leaf {
	position: absolute;
	bottom: -32px;
	right: -30px;
	width: 85px;
	pointer-events: none
}
.offices-section, .documents-section {
	margin-bottom: 40px
}
.offices-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px
}
.office-card {
	padding: 25px;
	background: #fff7d8;
	border: 1px solid #ffe1a0;
	border-radius: 30px 22px 35px 25px
}
.office-peace {
	background: #fff0f1;
	border-color: #ffc7d3
}
.office-title {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 20px
}
.office-title > img {
	width: 65px
}
.office-title h3 {
	font-size: 25px;
	line-height: 1.4
}
.office-title h3 small {
	font-size: 11px;
	display: block
}
.office-peace .office-title {
	color: #e95780
}
.office-title .eyebrow {
	font-size: 13px
}
.office-details {
	display: grid;
	grid-template-columns: .9fr 1.1fr;
	gap: 18px;
	align-items: center
}
.office-art {
	background: #fffdf5;
	border-radius: 15px;
	overflow: hidden;
	aspect-ratio: 1.2;
	display: flex;
	align-items: center
}
.office-art > img {
	width: 100%;
	height: 100%;
	object-fit: cover
}
.peace-office-art > img {
	height: auto;
	object-fit: contain
}
.office-details address {
	font-style: normal;
	font-size: 13px;
	line-height: 1.9;
	margin: 0;
	font-weight: 500
}
.map-link {
	font-size: 12px;
	padding: 9px 12px;
	gap: 5px;
	letter-spacing: 0;
	margin-top: 16px;
	white-space: nowrap
}
.map-link span {
	margin-left: 0
}
.office-peace .button {
	background: #f27191
}
.documents-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px
}
.document-card {
	display: flex;
	align-items: center;
	gap: 25px;
	border: 1px solid #e5dfd3;
	border-radius: 16px;
	background: #fff;
	padding: 25px
}
.pdf-icon {
	width: 48px;
	height: 61px;
	background: #fff4f5;
	border: 2px solid #ff6686;
	border-radius: 3px 13px 3px 3px;
	display: grid;
	place-items: center;
	color: #ed5473;
	font-size: 15px;
	font-weight: 700;
	flex-shrink: 0
}
.document-card h3 {
	font-size: 17px
}
.document-card p {
	font-size: 12px;
	margin: 4px 0 9px
}
.document-card .text-link {
	font-size: 12px
}
.contact-section {
	padding: 15px 0 30px
}
.contact-intro {
	display: flex;
	justify-content: space-between;
	gap: 25px;
	align-items: center;
	margin-bottom: 28px
}
.contact-intro p {
	font-size: 14px
}
.contact-phone {
	white-space: nowrap
}
.contact-phone small {
	display: block;
	font-size: 12px
}
.contact-phone > span {
	font-size: 27px;
	font-weight: 700
}
.form-paper {
	background: #fffef9;
	border: 1px solid #eddebc;
	border-radius: 35px;
	padding: 38px 6%;
	max-width: 1000px;
	margin: auto;
	box-shadow: 0 10px 35px #c8a7580d
}
.form-steps {
	display: flex;
	list-style: none;
	gap: 15px;
	justify-content: center;
	margin: 0 0 35px;
	padding: 0
}
.form-steps li {
	background: #f3efe3;
	color: #a89b82;
	border-radius: 40px;
	font-size: 13px;
	padding: 10px 18px;
	display: flex;
	align-items: center;
	gap: 8px
}
.form-steps .is-current {
	background: #fff0b9;
	color: #755125;
	font-weight: 700
}
.required-note {
	font-size: 12px;
	margin-bottom: 15px
}
.required-tag {
	display: inline-block;
	font-size: 10px;
	background: #ffe6d9;
	color: #b65022;
	padding: 1px 6px;
	border-radius: 4px;
	margin-left: 5px;
	font-weight: 700;
	white-space: nowrap
}
.optional-tag {
	font-size: 10px;
	color: #9c927d;
	margin-left: 5px
}
.form-row {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 20px;
	padding: 18px 0;
	border-bottom: 1px dashed #e8dfcd;
	align-items: start
}
.form-row > label {
	font-size: 14px;
	padding-top: 11px;
	font-weight: 700
}
.form-row input, .form-row select, .form-row textarea {
	border: 1px solid #dacfb7;
	background: #fff;
	border-radius: 9px;
	padding: 12px 14px;
	width: 100%;
	font: inherit;
	font-size: 15px;
	color: #55351f;
	min-width: 0
}
.form-row textarea {
	resize: vertical;
	min-height: 145px;
	display: block
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus {
	outline: 2px solid #efb142;
	outline-offset: 2px
}
.form-row input::placeholder, .form-row textarea::placeholder {
	color: #aa9f88;
	font-size: 13px
}
.field-note {
	font-size: 11px;
	color: #8d7e65;
	margin-top: 7px
}
.form-honeypot {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden
}
.privacy-details {
	font-size: 12px;
	background: #f9f5e9;
	border-radius: 9px;
	padding: 15px 18px;
	margin: 25px 0 20px
}
.privacy-details summary {
	cursor: pointer;
	font-weight: 700
}
.privacy-details p {
	margin-top: 10px
}
.consent {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 10px;
	font-size: 13px;
	cursor: pointer
}
.consent > input {
	width: 18px;
	height: 18px;
	accent-color: #ed7a32;
	flex-shrink: 0;
	margin-top: 3px
}
.form-buttons {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 28px
}
.form-buttons .button {
	font-size: 15px;
	white-space: nowrap
}
.back-button {
	padding: 12px 18px;
	border: 1px solid #dccfb5;
	border-radius: 30px;
	font-size: 14px
}
.form-buttons button:disabled {
	opacity: .55;
	cursor: wait
}
.form-status, #form-status {
	font-size: 13px;
	margin-top: 20px;
	white-space: pre-line;
	color: #af472d;
	text-align: center
}
.form-noscript {
	font-size: 13px;
	margin-top: 20px
}
#form-review h3, #form-complete h3 {
	text-align: center;
	font-size: 22px;
	margin-bottom: 15px
}
#form-review > p {
	font-size: 13px;
	text-align: center
}
#review-values {
	margin: 25px 0;
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	font-size: 14px
}
#review-values dt, #review-values dd {
	border-bottom: 1px solid #e6ddc8;
	padding: 12px;
	white-space: pre-wrap;
	overflow-wrap: anywhere
}
#review-values dt {
	background: #fff7e0;
	font-weight: 700
}
#form-complete {
	text-align: center
}
#form-complete > img {
	width: 130px;
	margin: auto
}
#form-complete .text-link {
	margin-top: 20px
}
.subpage-landscape {
	width: 100%;
	height: auto;
	margin-top: 20px
}
@media(max-width:1100px) {
	.service-intro {
		grid-template-columns: 1.4fr 1fr;
		gap: 22px
	}
	.moon-intro {
		padding: 25px;
		gap: 10px
	}
	.eligibility .sub-heading {
		font-size: 19px
	}
	.organic-photo {
		height: 280px
	}
	.service-details {
		gap: 22px
	}
	.peace-service {
		grid-template-columns: 1fr 1fr;
		padding: 30px
	}
	.peace-service-photo {
		grid-column: 2;
		grid-row: 1;
		width: 80%;
		justify-self: center
	}
	.peace-service-detail {
		grid-column: 1/-1
	}
	.peace-services li {
		min-height: 100px;
		border-radius: 40px
	}
	.office-details {
		grid-template-columns: 1fr
	}
	.office-art {
		aspect-ratio: 2
	}
	.office-title h3 {
		font-size: 21px
	}
	.office-details > div:last-child {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 8px
	}
	.map-link {
		margin-top: 0
	}
	.form-row {
		grid-template-columns: 185px minmax(0, 1fr)
	}
}
@media(max-width:800px) {
	.service-intro {
		grid-template-columns: 1fr
	}
	.moon-intro {
		grid-template-columns: 1.1fr 1fr
	}
	.eligibility {
		padding: 10px 20px
	}
	.side-leaf {
		right: 0;
		bottom: 0
	}
	.service-details {
		grid-template-columns: 1fr
	}
	.work-grid h3 {
		font-size: 14px
	}
	.work-grid p {
		font-size: 12px
	}
	.work-grid img, .free-art {
		max-height: 160px
	}
	.page-mascot {
		right: 1%;
		width: 22%;
		bottom: 0
	}
	.page-hero {
		height: 300px;
		background-size: auto 100%
	}
	.page-hero-copy {
		max-width: 85%;
		margin-top: -45px
	}
	.page-tagline {
		font-size: 15px
	}
	.about-page .page-hero-copy {
		max-width: 90%
	}
	.about-page .page-mascot {
		width: 20%;
		right: 0
	}
	.offices-grid {
		gap: 15px
	}
	.office-card {
		padding: 20px
	}
	.office-details > div:last-child {
		display: block
	}
	.map-link {
		margin-top: 12px
	}
	.office-title {
		gap: 8px
	}
	.office-title > img {
		width: 45px
	}
	.office-title h3 {
		font-size: 19px
	}
	.office-title .eyebrow {
		font-size: 11px
	}
	.documents-grid {
		gap: 15px
	}
	.document-card {
		padding: 20px;
		gap: 12px
	}
	.document-card h3 {
		font-size: 15px
	}
	.contact-phone > span {
		font-size: 23px
	}
	.form-paper {
		padding: 28px 5%
	}
	.form-row {
		grid-template-columns: 160px minmax(0, 1fr);
		gap: 12px
	}
}
@media(max-width:600px) {
	.sub-inner {
		width: 90%
	}
	.page-hero {
		height: 285px;
		min-height: 285px
	}
	.page-hero h1 {
		font-size: 32px
	}
	.page-hero-copy {
		margin-top: -32px
	}
	.page-english {
		font-size: 16px
	}
	.page-tagline {
		font-size: 13px;
		letter-spacing: .05em;
		margin-top: 13px
	}
	.page-mascot {
		width: 28%;
		right: 0;
		bottom: -2%
	}
	.about-page .page-hero h1 {
		font-size: 26px;
		line-height: 1.7;
		max-width: 300px;
		margin: auto
	}
	.about-page .title-join {
		font-size: 20px
	}
	.about-page .page-tagline {
		font-size: 11px
	}
	.about-page .page-mascot {
		width: 25%;
		bottom: -2%
	}
	.breadcrumbs {
		font-size: 10px;
		padding: 18px 0 24px;
		gap: 8px
	}
	.sub-heading {
		font-size: 22px;
		gap: 10px;
		margin-bottom: 15px
	}
	.moon-intro {
		grid-template-columns: 1fr;
		padding: 27px 24px;
		border-radius: 35px
	}
	.brand-heading {
		font-size: 30px
	}
	.handwritten {
		font-size: 25px
	}
	.intro-art {
		width: 80%;
		margin: 45px auto 0
	}
	.organic-photo {
		height: 210px
	}
	.intro-art .mini-bubble {
		top: -55px;
		right: -12%;
		font-size: 13px;
		padding: 10px 20px
	}
	.art-sprout {
		right: -30px
	}
	.eligibility {
		padding: 7px 10px 15px
	}
	.eligibility .sub-heading {
		font-size: 19px
	}
	.check-list li {
		font-size: 14px
	}
	.eligibility .muted {
		padding-right: 35px
	}
	.service-intro {
		margin-bottom: 28px
	}
	.schedule th, .schedule td {
		padding: 10px 12px
	}
	.schedule table {
		font-size: 12px
	}
	.schedule th {
		width: 34%
	}
	.schedule td span {
		font-size: 11px
	}
	.schedule td strong {
		font-size: 13px
	}
	.work-section {
		padding: 24px 18px
	}
	.work-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px 14px
	}
	.work-grid h3 {
		font-size: 13px
	}
	.free-art {
		max-height: none
	}
	.works-gallery {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 5px
	}
	.gallery-instagram {
		font-size: 12px;
		gap: 7px
	}
	.gallery-instagram small {
		font-size: 11px
	}
	.gallery-instagram img {
		width: 27px
	}
	.peace-service {
		grid-template-columns: 1fr;
		padding: 27px 24px;
		gap: 15px;
		border-radius: 40px;
		margin-bottom: 30px
	}
	.peace-service-photo {
		grid-row: auto;
		grid-column: auto;
		width: 75%;
		margin: 0 auto 10px
	}
	.peace-service-photo > img {
		width: 120%;
		max-width: 120%;
		margin-left: -10%
	}
	.peace-service-detail {
		grid-column: auto
	}
	.peace-services {
		grid-template-columns: 1fr 1fr;
		gap: 10px
	}
	.peace-services li {
		border-radius: 45%;
		font-size: 12px;
		min-height: 108px
	}
	.peace-service-detail .sub-heading {
		font-size: 21px
	}
	.peace-service-detail > p {
		font-size: 13px
	}
	.peace-service-leaf {
		width: 50px
	}
	.company-table th, .company-table td {
		padding: 12px 14px;
		font-size: 12px
	}
	.company-table th {
		width: 28%;
		white-space: nowrap
	}
	.company-table td {
		overflow-wrap: anywhere
	}
	.company-table ul {
		padding-left: 15px
	}
	.company-leaf {
		width: 55px;
		right: -15px;
		bottom: -23px
	}
	.offices-grid, .documents-grid {
		grid-template-columns: 1fr
	}
	.office-title h3 {
		font-size: 24px
	}
	.office-title > img {
		width: 55px
	}
	.office-title .eyebrow {
		font-size: 13px
	}
	.office-details {
		grid-template-columns: .85fr 1.15fr;
		gap: 12px
	}
	.office-art {
		aspect-ratio: 1;
		height: 100%
	}
	.office-details address {
		font-size: 11px;
		text-align: left
	}
	.map-link {
		font-size: 10px;
		padding: 8px 10px;
		white-space: nowrap
	}
	.document-card {
		gap: 20px
	}
	.document-card h3 {
		font-size: 17px
	}
	.contact-intro {
		display: block
	}
	.contact-intro p {
		font-size: 13px
	}
	.contact-phone {
		display: block;
		margin-top: 20px;
		text-align: center;
		padding: 15px;
		background: #fff6df;
		border-radius: 20px
	}
	.contact-phone > span {
		font-size: 26px
	}
	.form-paper {
		border-radius: 24px;
		padding: 25px 18px
	}
	.form-steps {
		gap: 6px;
		margin-bottom: 24px
	}
	.form-steps li {
		font-size: 11px;
		padding: 8px 9px;
		gap: 5px
	}
	.form-row {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 14px 0
	}
	.form-row > label {
		padding-top: 0;
		font-size: 13px
	}
	.form-row input, .form-row select, .form-row textarea {
		font-size: 16px;
		padding: 11px
	}
	.consent {
		font-size: 12px;
		justify-content: flex-start
	}
	.required-tag {
		font-size: 9px
	}
	.form-buttons {
		gap: 12px
	}
	.form-buttons .button {
		font-size: 13px;
		padding: 12px 20px;
		gap: 4px
	}
	.form-buttons .button span {
		margin-left: 6px
	}
	#review-values {
		grid-template-columns: 1fr;
		font-size: 13px
	}
	#review-values dt {
		padding-bottom: 5px
	}
	#review-values dd {
		padding-top: 10px
	}
	.subpage-landscape {
		width: 130%;
		max-width: none;
		margin-left: -15%
	}
}
/* Keep short headings together and balance the service columns. */
.title-part {
	display: inline-block;
	white-space: nowrap
}
.moon-intro .handwritten {
	font-size: clamp(20px, 1.6vw, 26px);
	letter-spacing: .04em
}
.schedule th, .schedule td {
	padding-block: 8px
}
@media(min-width:1101px) {
	.peace-service-photo > img {
		width: 110%;
		max-width: 110%;
		margin-left: -5%
	}
}
@media(max-width:600px) {
	.about-page .page-hero h1 .title-part {
		display: block
	}
	.moon-intro .handwritten {
		font-size: 24px
	}
	.schedule th, .schedule td {
		padding-block: 10px
	}
}
.intro-art {
	margin-top: 45px
}
.intro-art .mini-bubble {
	top: -45px
}
@media(max-width:600px) {
	.about-page .page-hero h1 wbr {
		display: none
	}
}
/* Main activities: two cards per row on all screen sizes. */
.work-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 16px;
}
.work-grid img, .work-grid .free-art {
	max-height: 170px;
	margin-inline: auto;
}
/* Small illustrated companions throughout the lower pages. */
.fa-mark{display:inline-block;width:1.05em;height:1.05em;flex:0 0 1.05em;background:currentColor;mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat}
.fa-pen{--icon:url('../img/icons/pen.svg');transform:rotate(-8deg)}
.fa-clock{--icon:url('../img/icons/clock.svg')}
.day-section,.documents-section,.offices-section,.decorated-panel{position:relative}
.section-friend{display:flex;justify-content:flex-end;align-items:center;gap:9px;margin:0 0 14px;pointer-events:none}
.section-friend img{width:105px}
.section-friend>span{background:#fff6d9;border:1px solid #eedaa5;border-radius:60% 45% 55% 40%;padding:12px 20px;font-size:13px;transform:rotate(-5deg);white-space:nowrap}
.day-friend{margin-top:-8px;margin-bottom:6px}
.decor-sprig{position:absolute;pointer-events:none;object-fit:contain}
.work-sprig{width:100px;right:15px;top:-28px;transform:rotate(12deg)}
.work-section{margin-top:22px}
.decor-outline{position:absolute;width:130px;right:0;top:-22px;transform:rotate(-22deg);pointer-events:none;opacity:.7}
.peace-companion{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:15px;margin-top:4px;border-top:1px dashed #efc8cd;padding-top:12px}
.peace-companion img{width:100px}
.peace-companion span{font-size:15px;letter-spacing:.08em;color:#b76570}
.office-sprig{width:115px;top:-20px;right:0}
.documents-friend{margin-top:12px;margin-bottom:0}
.documents-friend img{width:95px}
.form-welcome{display:flex;align-items:center;justify-content:center;gap:20px;margin:10px auto 18px;max-width:1000px}
.form-welcome>img:first-child{width:110px}
.form-welcome>span{font-size:19px;font-weight:700;letter-spacing:.06em}
.form-welcome small{display:block;font-size:13px;color:#988564;margin-top:6px;font-weight:500}
.form-welcome .welcome-sprout{width:42px;margin-left:15px;transform:rotate(12deg)}
@media(max-width:600px){.section-friend img{width:80px}.section-friend>span{font-size:11px;padding:10px 15px}.work-sprig{width:75px;top:-25px;right:8px}.decor-outline{width:85px;top:-17px}.office-sprig{width:70px;top:-14px;right:-4px}.offices-section>.sub-heading{padding-right:62px}.peace-companion img{width:85px}.peace-companion span{font-size:13px}.form-welcome{gap:10px}.form-welcome>img:first-child{width:75px}.form-welcome>span{font-size:13px;letter-spacing:0}.form-welcome small{font-size:11px}.form-welcome .welcome-sprout{width:25px;margin-left:0}.documents-friend img{width:80px}}

.peace-training {
	grid-column: 1 / -1;
	padding: 24px 28px;
	background: #fffaf8;
	border: 1px solid #f2cfd7;
	border-radius: 22px;
}
.peace-training h3 { font-size: 20px; color: #bd5273; margin-bottom: 10px; }
.peace-training p { font-size: 14px; margin-bottom: 12px; }
.peace-training ol { padding-left: 1.6em; font-size: 15px; line-height: 1.9; }
.peace-training li { padding-left: 5px; margin-top: 6px; }
.peace-training li::marker { color: #bd5273; font-weight: 700; }
@media (max-width: 600px) {
	.peace-training { padding: 20px 16px; }
	.peace-training h3 { font-size: 18px; }
	.peace-training p, .peace-training ol { font-size: 13px; }
}

/* A different Tsukio pose in the training panel's free space. */
.peace-training { position: relative; padding-right: 190px; }
.training-mascot { position: absolute; width: 135px; right: 28px; bottom: 24px; pointer-events: none; }
@media (max-width: 800px) {
	.peace-training { padding-right: 28px; padding-bottom: 110px; }
	.training-mascot { width: 95px; right: 22px; bottom: 10px; }
}
@media (max-width: 600px) {
	.peace-training { padding-right: 16px; }
}

/* About: watercolor headings, clearer contact choices and a calm form. */
.about-page .heading-illustration{width:43px;height:43px;object-fit:contain;flex-shrink:0;transform:rotate(-9deg)}
.about-page .sub-heading{gap:13px;color:#654220}
.about-page .about-bubble{position:absolute;right:80px;top:-15px;padding:10px 23px;border:1px solid #e9d98e;border-radius:46% 55% 42% 51%;background:#fff7d9;transform:rotate(5deg);font-size:12px;line-height:1.7;text-align:center}
.about-page .offices-section{margin-top:50px}
.about-page .documents-section{padding:20px 25px 28px;background:#fff9e9;border-radius:40px 27px 45px 30px}
.about-page .documents-friend{margin-top:-38px}
.about-page .contact-section{position:relative;margin-top:48px}
.about-page .contact-intro{align-items:center;gap:36px;margin-bottom:30px;text-align: center;}
.about-page .contact-intro .sub-heading{justify-content: center}
.about-page .contact-phone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:300px;padding:22px 30px;background:#fff5ce;border:2px solid #eabd68;border-radius:30px;box-shadow:0 5px 0 #f2e2b1;text-align:center;transition:background .2s}
.about-page .contact-phone:hover{background:#ffeab4}
.about-page .contact-phone small{font-size:13px;color:#74501f;letter-spacing:.04em}
.about-page .contact-phone strong{font-size:30px;line-height:1.3;letter-spacing:.03em;color:#66401e}
.about-page .contact-phone .phone-action{display:flex;align-items:center;gap:25px;background:#fffdf7;border-radius:20px;padding:5px 22px;font-size:13px;font-weight:700;color:#a66422}
.about-page .contact-phone .phone-action span{font-size:18px}
.contact-leaf{position:absolute;width:64px;left:-25px;top:180px;transform:rotate(-16deg);pointer-events:none}
.about-page .contact-copy{padding:30px clamp(20px,4vw,42px);text-align:center}
.about-page .contact-copy .sub-heading{justify-content:center}
.about-page .contact-friend{justify-content:center;margin-bottom:6px}
.about-page .contact-friend img{width:88px}
.about-page .contact-friend span{background:#fffdf7;border:1px solid #f2d88c}
.contact-choices{display:flex;flex-wrap:wrap;gap:18px;margin:22px 0;justify-content: center;}
.contact-choices .button{width: 80%;max-width: 450px;justify-content:center;font-size:15px;padding:16px 28px}
.contact-choices .button-instagram{background:linear-gradient(135deg,#4f5bd5,#962fbf,#d62976,#fa7e1e,#feda75);box-shadow:0 5px 0 #b6467d}
.contact-choices .button-instagram:hover{background:linear-gradient(135deg,#41449b,#7c2695,#b21f5f,#d9650f,#e3b95a);box-shadow:0 5px 0 #97355f}
@media(max-width:600px){.contact-choices{flex-direction:column}.contact-choices .button{width:100%}}
.about-page .form-welcome{margin-top:25px;margin-bottom:20px}
.about-page .form-paper{position:relative;max-width:980px;padding:35px clamp(20px,5vw,65px) 40px;border:1px solid #ecdfc2;background:#fffefa;border-radius:30px;box-shadow:0 8px 28px #84652f0b}
.form-heading{text-align:center;margin:0 0 28px}
.form-heading>span{font-size:11px;letter-spacing:.2em;color:#d39749}
.form-heading h3{font-size:24px;margin:5px 0 8px}
.form-heading p{font-size:12px;color:#968367}
.about-page .form-steps{padding-bottom:25px;border-bottom:1px solid #ece3d1;margin-bottom:22px}
.about-page .form-row{grid-template-columns:190px minmax(0,1fr);padding:20px 0;gap:22px;align-items:start}
.about-page .form-row>label{font-size:14px;line-height:1.8}
.about-page .form-row input,.about-page .form-row select,.about-page .form-row textarea{border-color:#ded3be;box-shadow:inset 0 2px 3px #a88b5205;border-radius:8px;background:#fff}
.about-page .privacy-details{margin-top:28px;background:#f7f3e9;padding:18px}
.about-page .form-buttons .button{min-height:50px;padding-inline:32px}
@media(max-width:800px){.about-page .contact-intro{flex-direction:column;align-items:stretch}.about-page .contact-phone{min-width:0;width:100%;max-width:440px;margin-inline:auto}.contact-leaf{width:48px;top:335px;left:-10px}}
@media(max-width:600px){.about-page .heading-illustration{width:34px;height:34px}.about-page .about-bubble{right:0;top:-26px;font-size:10px;padding:7px 15px}.about-page .company-section{padding-top:12px}.about-page .documents-section{padding:20px 15px 24px;margin-top:50px}.about-page .documents-friend{margin-top:-40px}.about-page .documents-section .sub-heading{font-size:20px}.about-page .contact-phone{padding:20px;margin-top:18px}.about-page .contact-phone strong{font-size:29px}.about-page .contact-section{margin-top:30px}.about-page .form-paper{padding:25px 18px;border-radius:24px}.form-heading h3{font-size:20px}.form-heading p{font-size:11px}.about-page .form-row{grid-template-columns:1fr;gap:9px;padding:16px 0}.about-page .form-row>label{padding-top:0;font-size:13px}.about-page .form-steps{gap:6px}.about-page .form-buttons .button{padding-inline:22px}.contact-leaf{display:none}}
.robot-row #robot-question{font-size:14px;margin-bottom:8px;font-weight:700}
.robot-row #contact-robot{max-width:240px;display:block}
#robot-reload{font-size:11px;margin-top:8px}

.company-operator{font-size:15px;margin:5px 0 22px}
.business-tables{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.business-table h3{background:#fff6d8;padding:20px 25px;border-radius:22px 22px 0 0;font-size:13px}
.business-table h3 strong{display:block;font-size:27px;line-height:1.4;margin-top:3px}
.business-peace h3{background:#ffeef2;color:#ca547c}
.business-table .company-table-wrap{border-radius:0 0 15px 15px}
.business-table .company-table th,.business-table .company-table td{padding:13px 16px;font-size:13px}
.business-table .company-table th{width:32%}
.business-peace .company-table th{background:#fff5f7}
.provisional{color:#a68e70;font-size:12px!important}
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.access-card{border:1px solid #ecd8ad;background:#fff9e9;padding:25px;border-radius:30px}
.access-peace{background:#fff4f5;border-color:#f2d2dc}
.access-card h3{font-size:26px;line-height:1.5;margin-bottom:12px}
.access-card h3 small{display:block;font-size:13px}
.access-peace h3{color:#ce5b80}
.access-card address{font-style:normal;font-size:13px;margin:0 0 20px;line-height:1.9;font-weight:500;min-height:75px}
.access-card iframe{border:0;width:100%;height:280px;display:block;border-radius:15px;background:#eee9dc}
.access-card .map-link{margin-top:18px}
.access-note{font-size:11px;color:#998469;margin-top:12px}
@media(max-width:800px){.business-tables,.access-grid{grid-template-columns:1fr}.access-card address{min-height:0}.business-table .company-table th{width:30%}}
@media(max-width:600px){.access-card{padding:20px}.access-card iframe{height:235px}.business-table .company-table th,.business-table .company-table td{font-size:12px;padding:12px}.company-operator{font-size:13px}.access-card h3{font-size:24px}}

/* Fixed and mobile contact choices, with no challenge field for visitors. */
.about-page .contact-intro{display:block}
.phone-options{margin-top:28px;text-align:center}
.phone-options h3{font-size:23px;margin-bottom:18px}
.phone-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;background:#fff5db;border-radius:25px;padding:30px 35px}
.phone-option{display:flex;flex-direction:column;align-items:center;gap:18px;padding:8px 0}
.phone-label{display:block;width:100%;border-radius:40px;padding:10px 20px;background:#d49a39;color:white;font-weight:700;font-size:15px}
.phone-option:nth-child(2) .phone-label{background:#eaa34d}
.phone-option strong{font-size:30px;line-height:1.5;white-space:nowrap;color:#624324;letter-spacing:.02em}
.phone-option strong small{font-size:15px;margin-right:5px}
.phone-hint{font-size:12px;color:#9a6825}
.phone-option:hover .phone-label{background:#bb7e27}
@media(max-width:800px){.phone-options-grid{padding:25px 20px;gap:20px}.phone-option strong{font-size:24px}}
@media(max-width:600px){.phone-options h3{font-size:20px}.phone-options-grid{grid-template-columns:1fr;gap:20px;padding:24px}.phone-option{gap:12px}.phone-option+ .phone-option{border-top:1px dashed #e0c78c;padding-top:24px}.phone-option strong{font-size:28px}}

/* Spacing for the expanded privacy notice. */
.about-page .privacy-details {
	padding: 0;
	margin: 30px 0 26px;
	border: 1px solid #e9dfcc;
	border-radius: 12px;
}
.about-page .privacy-details summary {
	padding: 17px 22px;
	font-size: 14px;
	line-height: 1.7;
}
.about-page .privacy-details[open] summary {
	border-bottom: 1px solid #e9dfcc;
}
.privacy-details__content {
	padding: 24px 26px 28px;
	font-size: 13px;
	line-height: 1.95;
	overflow-wrap: anywhere;
}
.about-page .privacy-details__content p {
	margin: 0 0 14px;
}
.privacy-details__content h4 {
	margin: 25px 0 9px;
	font-size: 14px;
	line-height: 1.7;
	color: #694b2e;
}
.privacy-details__content ul {
	list-style: disc;
	padding-left: 1.5em;
	margin: 12px 0 18px;
}
.privacy-details__content li {
	padding-left: 3px;
	margin: 6px 0;
}
.about-page .privacy-details__content > :last-child {
	margin-bottom: 0;
}
@media (max-width: 600px) {
	.about-page .privacy-details summary { padding: 15px 16px; font-size: 13px; }
	.privacy-details__content { padding: 20px 16px 24px; font-size: 12px; }
	.privacy-details__content h4 { margin-top: 23px; font-size: 13px; }
}

/* The entire PDF card is a single accessible link. */
a.document-card { cursor: pointer; transition: background .2s, border-color .2s; }
a.document-card:hover { background: #fff9eb; border-color: #dea64e; }
a.document-card:focus-visible { outline: 3px solid #dea64e; outline-offset: 4px; }
a.document-card .text-link { margin-top: 8px; }
@media (prefers-reduced-motion: reduce) { a.document-card { transition: none; } }

/* Operating documents are grouped by office, with full-card links. */
.document-group + .document-group { margin-top: 28px; }
.document-group > h3 { font-size: 21px; margin: 0 0 13px; padding-left: 12px; border-left: 4px solid #e8b654; line-height: 1.5; }
.document-group-peace > h3 { color: #bd5273; border-left-color: #e9a1b8; }
.document-group .document-card h4 { font-size: 17px; line-height: 1.6; }
.access-grid { align-items: start; }
.office-exterior { margin: 22px 0 0; }
.office-exterior img { width: 100%; height: auto; border-radius: 16px; }
.office-exterior figcaption { margin-top: 10px; text-align: center; font-size: 13px; font-weight: 700; }
.office-exterior figcaption span { font-size: 12px; font-weight: 500; }
@media (max-width: 600px) {
 .document-group > h3 { font-size: 19px; }
 .document-group .document-card h4 { font-size: 15px; }
}

/* Small organic exterior photo beside the address, above the map. */
.access-card-header { min-height: 185px; margin-bottom: 20px; }
.access-card-header.has-exterior { display: grid; grid-template-columns: minmax(0, 1fr) 32%; gap: 18px; align-items: start; }
.access-card-header address { margin-bottom: 0; min-height: 0; }
.access-card-header .office-exterior { margin: 0; align-self: start; }
.access-card-header .office-exterior img { width: 100%; aspect-ratio: 1.22; height: auto; object-fit: cover; border: 4px solid #fffdf5; border-radius: 39% 55% 37% 49% / 43% 34% 54% 39%; transform: rotate(3deg); }
@media(max-width:1100px) and (min-width:801px) { .access-card-header { min-height: 220px; } .access-card-header h3 { font-size: 23px; } }
@media(max-width:800px) { .access-card-header { min-height: 160px; } .access-card-header.has-exterior { grid-template-columns:minmax(0,1fr) minmax(90px,28%); } }
@media(max-width:600px) { .access-card-header { min-height: 0; } .access-card-header.has-exterior { grid-template-columns: minmax(0,1fr) 28%; gap: 10px; } .access-card-header h3 { font-size: 22px; } .access-card-header address { font-size: 12px; } .access-card-header .office-exterior img { border-width: 3px; } }
