.about-page {
	background: #fff;
	padding: clamp(52px, 6vw, 100px) 0 clamp(80px, 8vw, 140px);
}

.about-page__inner {
	width: min(100% - 48px, 1120px);
	margin: 0 auto;
}

.about-page__heading {
	container-type: inline-size;
	position: relative;
	display: grid;
	place-items: center;
	width: min(850px, 100%);
	margin: 0 auto;
	border-bottom: 1px solid #aab493;
	color: var(--color-green);
	text-align: center;
}

.about-page__heading::before,
.about-page__heading::after {
	content: '';
	position: absolute;
	bottom: 0;
	width: 6.4cqw;
	height: 13.2cqw;
	background-image: url('../images/genkitai.png');
	background-size: 100cqw auto;
	background-repeat: no-repeat;
	pointer-events: none;
}

.about-page__heading::before { left: 0; background-position: left bottom; }
.about-page__heading::after { right: 0; background-position: right bottom; }

.about-page__heading h1 {
	margin: 0;
	font-size: 7cqw;
	font-weight: 400;
	letter-spacing: .2em;
	line-height: 1.4;
}

.about-page__heading p {
	margin: 0;
	padding-bottom: 1.8cqw;
	font-size: 3.4cqw;
	letter-spacing: .17em;
	line-height: 1;
}

.about-page__greeting {
	margin: clamp(42px, 5vw, 72px) auto clamp(70px, 8vw, 120px);
	text-align: center;
}

.about-page__greeting h2 {
	margin: 0 0 19px;
	font-size: clamp(18px, 2.2vw, 25px);
	letter-spacing: .1em;
}

.about-page__greeting p {
	margin: 0;
	font-size: clamp(14px, 1.45vw, 17px);
	letter-spacing: .08em;
	line-height: 2;
}

.about-profile { margin: 0; }

.about-profile__row {
	display: grid;
	grid-template-columns: 40% minmax(0, 1fr);
	gap: 3%;
	border-bottom: 1px solid #eeeae7;
	padding: 17px 0 18px;
	font-size: clamp(15px, 1.5vw, 18px);
	font-weight: 600;
	letter-spacing: .055em;
}

.about-profile__row dt,
.about-profile__row dd { margin: 0; }

.about-profile__row dt span {
	display: inline-block;
	position: relative;
	padding-bottom: 7px;
}

.about-profile__row dt span::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -18px;
	width: 100%;
	height: 2px;
	background: var(--color-green);
}

.about-profile__row dd { min-width: 0; }
.about-profile__row dd a { text-decoration: none; }
.about-profile__row dd a:hover { text-decoration: underline; }
.about-profile__lines p { margin: 0 0 3px; }
.about-profile__lines p:last-child { margin-bottom: 0; }

.about-profile__qualifications {
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(7, auto);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 20px;
	margin: 0;
	padding-left: 1.3em;
}

.about-profile__qualifications li { break-inside: avoid; }

.about-location {
	display: grid;
	grid-template-columns: 1fr 1.25fr;
	gap: clamp(24px, 3.5vw, 46px);
	margin-top: clamp(85px, 9vw, 130px);
}

.about-location__photo {
	align-self: start;
}

.about-location__photo img {
	display: block;
	width: 100%;
	height: auto;
}

.about-location__map a { display: block; }

.about-location__map img {
	display: block;
	width: 100%;
	height: 340px;
	object-fit: cover;
	filter: grayscale(1);
	transition: filter 750ms ease-in-out;
}

.about-location__map a:hover img,
.about-location__map a:focus-visible img { filter: grayscale(0); }

.about-location__map p { margin: 10px 0 0; font-size: 13px; }

@media (max-width: 700px) {
	.about-page__inner { width: min(100% - 32px, 1120px); }
	.about-page__greeting br { display: none; }
	.about-page__greeting p { max-width: 34em; margin: auto; text-align: left; }
	.about-profile__row { grid-template-columns: 1fr; gap: 8px; padding: 18px 0; }
	.about-profile__row dt span::after { bottom: 0; }
	.about-profile__qualifications { grid-auto-flow: row; grid-template-rows: none; grid-template-columns: 1fr; }
	.about-location { grid-template-columns: 1fr; }
	.about-location__map img { height: auto; }
}

@media (prefers-reduced-motion: reduce) {
	.about-location__map img { transition: none; }
}
