:root {
	--paper: #f6f1e7;
	--paper-2: #eee8da;
	--ink: #202720;
	--moss: #315b49;
	--moss-dark: #173f32;
	--sage: #a8bfaa;
	--sky: #c7dde1;
	--persimmon: #db744b;
	--yellow: #e7c96d;
	--line: rgba(32, 39, 32, 0.18);
	--muted: #66716a;
	--white: #ffffff;
	--max: 1320px;
}

/* ========================================================================
 * v3.5.7: breadcrumb coordinate system.
 * /areas/ is the sole reference: the wide frame starts 24px from the viewport
 * and 3vw (clamped to 28–46px) below the header. Only breadcrumb geometry is
 * changed; the following hero copy keeps its former vertical position.
 * ======================================================================== */
.tama-feature-story-hero > .tama-breadcrumbs {
	position: absolute;
	top: clamp(28px, 3vw, 46px);
	left: 50%;
	z-index: 3;
	width: min(calc(100% - 48px), var(--max)) !important;
	max-width: var(--max) !important;
	margin: 0 !important;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, .82);
	overflow-x: auto;
	white-space: nowrap;
	scrollbar-width: none;
}

.tama-feature-story-hero > .tama-breadcrumbs::-webkit-scrollbar {
	display: none;
}

.tama-feature-story-hero > .tama-breadcrumbs ol {
	width: max-content;
	max-width: none;
	flex-wrap: nowrap;
}

.trust-page--contact .trust-page__hero {
	padding-inline: 0 !important;
}

.trust-page--contact .trust-page__hero-inner {
	width: min(calc(100% - 48px), var(--max)) !important;
	max-width: var(--max) !important;
	padding-top: clamp(28px, 3vw, 46px);
	margin-inline: auto !important;
}

.trust-page--contact .trust-page__hero .tama-breadcrumbs {
	width: 100% !important;
	max-width: none !important;
	margin-right: 0 !important;
	margin-bottom: calc(clamp(50px, 6vw, 88px) + clamp(30px, 4vw, 52px) - clamp(28px, 3vw, 46px));
	margin-left: 0 !important;
}

.tama-course-hero {
	padding-top: clamp(28px, 3vw, 46px) !important;
}

.tama-course-hero > .tama-breadcrumbs {
	width: 100% !important;
	max-width: none !important;
	margin-right: 0 !important;
	margin-bottom: calc(28px + clamp(48px, 7vw, 90px) - clamp(28px, 3vw, 46px));
	margin-left: 0 !important;
}

@media (max-width: 782px) {
	.tama-feature-story-hero > .tama-breadcrumbs {
		top: 22px;
		width: calc(100% - 36px) !important;
		font-size: 10px;
	}

	.trust-page--contact .trust-page__hero-inner {
		width: calc(100% - 36px) !important;
		padding-top: 22px;
	}

	.trust-page--contact .trust-page__hero .tama-breadcrumbs {
		margin-bottom: 58px;
	}

	.tama-course-hero {
		padding-top: 22px !important;
	}

	.tama-course-hero > .tama-breadcrumbs {
		width: calc(100% + 12px) !important;
		margin-bottom: 54px;
		margin-left: -6px !important;
	}
}

/* ========================================================================
 * v3.5.5: HOKKAIDO LOVE!-inspired feature article system.
 * The composition is original to TAMA: photographic title hero, calm index,
 * repeatable spot modules and editor-only image directions.
 * ======================================================================== */
.tama-feature-story-page {
	background: var(--paper);
}

.tama-feature-story-hero {
	position: relative;
	display: flex;
	min-height: clamp(500px, 55vw, 710px);
	align-items: flex-end;
	isolation: isolate;
	overflow: hidden;
	background: linear-gradient(135deg, var(--moss-dark), var(--moss));
	color: #fff;
}

.tama-feature-story-hero::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(8, 22, 17, .05) 16%, rgba(8, 22, 17, .26) 55%, rgba(8, 22, 17, .86) 100%);
	content: "";
	pointer-events: none;
}

.tama-feature-story-hero__image {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	margin: 0 !important;
}

.tama-feature-story-hero__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tama-feature-story-hero__content {
	position: relative;
	z-index: 2;
	width: min(calc(100% - 48px), 1120px) !important;
	padding: clamp(48px, 8vw, 96px) 0 clamp(42px, 7vw, 82px);
	margin: auto auto 0 !important;
}

.tama-feature-story-hero__content > * {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.tama-feature-story-hero .tama-breadcrumbs {
	margin-bottom: clamp(32px, 6vw, 70px);
	color: rgba(255, 255, 255, .82);
}

.tama-feature-story-hero .tama-breadcrumbs a,
.tama-feature-story-hero .tama-breadcrumbs [aria-current="page"] {
	color: inherit;
}

.tama-feature-story-hero__kicker {
	margin-bottom: 14px !important;
}

.tama-feature-story-hero__kicker a {
	display: inline-flex;
	padding: 6px 12px;
	border: 1px solid rgba(255, 255, 255, .58);
	border-radius: 999px;
	color: #fff;
	font-weight: 800;
	letter-spacing: .13em;
}

.tama-feature-story-hero__title {
	max-width: 16em !important;
	margin: 0 !important;
	color: #fff !important;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(42px, 6vw, 76px) !important;
	font-weight: 500;
	line-height: 1.28;
	letter-spacing: -.025em;
	text-wrap: balance;
	text-shadow: 0 3px 24px rgba(0, 0, 0, .28);
}

.tama-feature-story-intro {
	display: grid;
	width: min(calc(100% - 48px), 1120px) !important;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	gap: 32px 64px;
	padding: clamp(40px, 6vw, 70px) 0;
	margin: 0 auto !important;
	border-bottom: 1px solid var(--line);
}

.tama-feature-story-intro__lead {
	max-width: 760px;
	margin: 0 !important;
}

.tama-feature-story-intro__lead .wp-block-post-excerpt__excerpt {
	margin: 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(18px, 2.1vw, 23px);
	line-height: 1.9;
}

.tama-feature-story-intro__meta {
	justify-content: flex-end;
	gap: 8px 18px !important;
	margin: 0 !important;
	color: var(--muted);
	white-space: nowrap;
}

.tama-feature-story-layout {
	display: grid;
	width: min(calc(100% - 48px), 1120px) !important;
	grid-template-columns: minmax(190px, 250px) minmax(0, 760px);
	justify-content: space-between;
	align-items: start;
	gap: clamp(42px, 7vw, 96px);
	padding: clamp(56px, 8vw, 100px) 0 clamp(80px, 10vw, 128px);
	margin: 0 auto !important;
}

.tama-feature-story-toc-shell {
	position: sticky;
	top: 118px;
	max-height: calc(100vh - 142px);
	overflow: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	margin: 0 !important;
}

.tama-story-toc {
	padding: 22px 22px 24px;
	border-top: 4px solid var(--persimmon);
	border-radius: 0 0 14px 14px;
	background: var(--paper-2);
}

.tama-story-toc__label {
	display: grid;
	gap: 4px;
	margin: 0 0 18px;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
}

.tama-story-toc__label span {
	color: var(--persimmon);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .18em;
}

.tama-story-toc ol {
	display: grid;
	gap: 0;
	padding: 0;
	margin: 0;
	list-style: none;
	counter-reset: tama-toc;
}

.tama-story-toc li {
	position: relative;
	padding: 11px 0 11px 30px;
	border-top: 1px solid rgba(32, 39, 32, .12);
	counter-increment: tama-toc;
}

.tama-story-toc li::before {
	position: absolute;
	top: 12px;
	left: 0;
	color: var(--persimmon);
	font: 800 10px/1.7 var(--wp--preset--font-family--sans);
	content: counter(tama-toc, decimal-leading-zero);
}

.tama-story-toc a {
	display: block;
	color: var(--ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.65;
	text-decoration: none;
}

.tama-story-toc a:hover,
.tama-story-toc a:focus-visible {
	color: var(--persimmon);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.tama-feature-story-body {
	width: 100%;
	min-width: 0;
	padding: 0 !important;
	margin: 0 !important;
}

.tama-feature-story-body .wp-block-post-content > :first-child {
	margin-top: 0;
}

.tama-feature-story-body .wp-block-post-content :where(h2[id]) {
	scroll-margin-top: 124px;
}

.tama-feature-story-body .tama-related-stories {
	width: 100%;
}

.tama-feature-story-body .tama-related-stories__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tama-feature-story-body .tama-related-card:last-child {
	grid-column: 1 / -1;
}

.tama-feature-story-body .tama-editor-image-guide {
	display: none;
}

.editor-styles-wrapper .tama-post-editor__body .tama-editor-image-guide {
	display: block;
	padding: 14px 16px;
	margin: 0 0 16px;
	border: 1px dashed var(--persimmon);
	border-radius: 10px;
	background: rgba(219, 116, 75, .08);
	color: #74402d;
	font-size: 12px;
	line-height: 1.7;
}

.editor-styles-wrapper .tama-post-editor__body .tama-editor-image-guide p {
	margin: 0;
}

.editor-styles-wrapper .tama-post-editor__body .tama-editor-image-guide p + p {
	margin-top: 4px;
}

.editorial-story-content-wrap .tama-article-gallery,
.editor-styles-wrapper .tama-post-editor__body .tama-article-gallery {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px !important;
	margin: 18px 0 32px;
}

.editorial-story-content-wrap .tama-article-gallery figure,
.editor-styles-wrapper .tama-post-editor__body .tama-article-gallery figure {
	width: 100% !important;
	margin: 0 !important;
	overflow: hidden;
	border-radius: 12px;
	background: var(--paper-2);
}

.editorial-story-content-wrap .tama-article-gallery img,
.editor-styles-wrapper .tama-post-editor__body .tama-article-gallery img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.editorial-story-content-wrap .tama-article-access,
.editor-styles-wrapper .tama-post-editor__body .tama-article-access {
	padding-top: clamp(28px, 4vw, 40px);
	margin: 0 0 clamp(76px, 10vw, 112px);
	border-top: 1px solid var(--ink);
}

.editorial-story-content-wrap .tama-article-access > h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-access > h2 {
	margin: 0 0 28px;
	font-size: clamp(28px, 4vw, 40px);
}

.editorial-story-content-wrap .tama-article-access__columns,
.editor-styles-wrapper .tama-post-editor__body .tama-article-access__columns {
	align-items: stretch !important;
}

.editorial-story-content-wrap .tama-article-map,
.editor-styles-wrapper .tama-post-editor__body .tama-article-map {
	min-height: 280px;
	overflow: hidden;
	border-radius: 16px;
	background: var(--paper-2);
}

.editorial-story-content-wrap .tama-article-map img,
.editorial-story-content-wrap .tama-article-map iframe,
.editor-styles-wrapper .tama-post-editor__body .tama-article-map img,
.editor-styles-wrapper .tama-post-editor__body .tama-article-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 280px;
	border: 0;
	object-fit: cover;
}

.editorial-story-content-wrap .tama-article-faq__item,
.editor-styles-wrapper .tama-post-editor__body .tama-article-faq__item {
	padding-top: 22px;
	margin-top: 22px;
	border-top: 1px solid var(--line);
}

.editorial-story-content-wrap .tama-article-faq__item:first-of-type,
.editor-styles-wrapper .tama-post-editor__body .tama-article-faq__item:first-of-type {
	padding-top: 0;
	margin-top: 0;
	border-top: 0;
}

@media (max-width: 960px) {
	.tama-feature-story-intro {
		grid-template-columns: 1fr;
	}

	.tama-feature-story-intro__meta {
		justify-content: flex-start;
	}

	.tama-feature-story-layout {
		grid-template-columns: 1fr;
		gap: 46px;
	}

	.tama-feature-story-toc-shell {
		position: static;
		width: min(100%, 760px);
		max-height: none;
		overflow: visible;
	}

	.tama-story-toc ol {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 24px;
	}
}

@media (max-width: 620px) {
	.tama-feature-story-hero {
		min-height: 460px;
	}

	.tama-feature-story-hero__content,
	.tama-feature-story-intro,
	.tama-feature-story-layout {
		width: calc(100% - 36px) !important;
	}

	.tama-feature-story-hero .tama-breadcrumbs {
		margin-bottom: 44px;
		font-size: 10px;
	}

	.tama-feature-story-hero__title {
		font-size: clamp(36px, 11vw, 52px) !important;
		line-height: 1.34;
	}

	.tama-feature-story-intro {
		padding: 34px 0 38px;
	}

	.tama-feature-story-intro__meta {
		white-space: normal;
	}

	.tama-feature-story-layout {
		padding-top: 40px;
	}

	.tama-story-toc {
		padding: 18px;
	}

	.tama-story-toc ol,
	.tama-feature-story-body .tama-related-stories__grid {
		grid-template-columns: 1fr;
	}

	.tama-feature-story-body .tama-related-card:last-child {
		grid-column: auto;
	}

	.editorial-story-content-wrap .tama-article-gallery,
	.editor-styles-wrapper .tama-post-editor__body .tama-article-gallery {
		gap: 8px !important;
	}

	.editorial-story-content-wrap .tama-article-access__columns,
	.editor-styles-wrapper .tama-post-editor__body .tama-article-access__columns {
		flex-direction: column !important;
	}
}

/* v3.5: launch trust pages, contact workflow and Kokubunji pilot. */
.trust-page__hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 82% 18%, rgba(231, 201, 109, .18), transparent 28%),
		linear-gradient(135deg, var(--moss-dark), #0d2d24);
	color: var(--white);
}

.trust-page__hero::after {
	position: absolute;
	right: -150px;
	bottom: -280px;
	width: 540px;
	height: 540px;
	border: 1px solid rgba(255, 255, 255, .15);
	border-radius: 50%;
	content: "";
}

.trust-page__hero-inner {
	position: relative;
	z-index: 1;
	width: min(calc(100% - 48px), var(--max));
	margin: 0 auto;
	padding: clamp(30px, 4vw, 52px) 0 clamp(76px, 9vw, 132px);
}

.trust-page__hero .tama-breadcrumbs {
	margin-bottom: clamp(50px, 6vw, 88px);
	color: rgba(255, 255, 255, .76);
}

.trust-page__hero h1 {
	max-width: 900px;
	margin-bottom: 24px;
}

.trust-page__hero .has-lead-font-size {
	max-width: 780px;
	color: rgba(255, 255, 255, .84) !important;
}

.trust-page__content {
	width: min(calc(100% - 48px), 1080px);
	margin: 0 auto;
	padding: clamp(72px, 8vw, 120px) 0;
}

.trust-page__principles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: clamp(42px, 6vw, 72px) 0;
}

.trust-page__principle,
.contact-page__type {
	padding: 30px;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: rgba(255, 255, 255, .7);
}

.trust-page__prose > h2 {
	margin-top: 52px;
	padding-top: 28px;
	border-top: 1px solid var(--line);
}

.trust-page__prose > h2:first-of-type {
	margin-top: 0;
}

.trust-page__prose p,
.trust-page__prose li {
	line-height: 1.9;
}

.contact-page__content {
	max-width: var(--max);
}

.contact-page__types {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.contact-page__number {
	margin: 0 0 30px;
	color: var(--persimmon);
	font-family: Georgia, serif;
	font-size: 42px;
	line-height: 1;
}

.contact-page__type h2 {
	margin-bottom: 14px;
}

.contact-page__type p:last-child {
	margin-bottom: 0;
	color: var(--muted);
}

.contact-page__form-section {
	margin-top: clamp(70px, 9vw, 120px);
	padding: clamp(34px, 5vw, 64px);
	border-radius: 28px;
	background: var(--paper-2);
}

.trust-page--contact .contact-page__form-section {
	margin-top: 0;
}

.tama-contact-notice {
	margin: 30px 0;
	padding: 20px 22px;
	border: 1px solid var(--line);
	border-left: 6px solid var(--moss);
	border-radius: 12px;
	background: var(--white);
}

.tama-contact-notice--error {
	border-left-color: var(--persimmon);
}

.tama-contact-notice p {
	margin: 6px 0 0;
}

.tama-contact-form {
	display: grid;
	gap: 24px;
	margin-top: 38px;
}

.tama-contact-form__honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.tama-contact-form__split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.tama-contact-form__field {
	display: grid;
	gap: 9px;
}

.tama-contact-form__field label {
	font-weight: 700;
}

.tama-contact-form__field label span {
	margin-left: 6px;
	color: var(--persimmon);
	font-size: 12px;
}

.tama-contact-form input,
.tama-contact-form select,
.tama-contact-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 15px 16px;
	border: 1px solid rgba(32, 39, 32, .3);
	border-radius: 10px;
	background: var(--white);
	color: var(--ink);
	font: inherit;
}

.tama-contact-form input:focus,
.tama-contact-form select:focus,
.tama-contact-form textarea:focus {
	border-color: var(--moss);
	outline: 3px solid rgba(49, 91, 73, .16);
}

.tama-contact-form textarea {
	min-height: 190px;
	resize: vertical;
}

.tama-contact-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	line-height: 1.7;
}

.tama-contact-form__consent input {
	width: 20px;
	height: 20px;
	margin-top: 3px;
	accent-color: var(--moss);
}

.tama-contact-form__submit {
	justify-self: start;
	min-height: 54px;
	padding: 0 28px;
	border: 0;
	border-radius: 999px;
	background: var(--persimmon);
	color: var(--white);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.area-pilot-banner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 30px;
	width: min(calc(100% - 48px), var(--max));
	margin: 42px auto;
	padding: clamp(28px, 4vw, 46px);
	border: 1px solid rgba(219, 116, 75, .36);
	border-radius: 24px;
	background: linear-gradient(135deg, #fffdf7, #f6eadc);
}

.area-pilot-banner h2,
.area-pilot-banner p {
	margin-top: 0;
}

.area-pilot-banner__action {
	margin: 0;
}

.area-pilot-banner__action a {
	display: inline-flex;
	align-items: center;
	min-height: 50px;
	padding: 0 22px;
	border-radius: 999px;
	background: var(--moss-dark);
	color: var(--white);
	font-weight: 700;
	text-decoration: none;
}

.kokubunji-hub__hero,
.kokubunji-hub__cta {
	background:
		radial-gradient(circle at 86% 8%, rgba(231, 201, 109, .24), transparent 24%),
		linear-gradient(135deg, #123a2e, #0b2820);
}

.kokubunji-hub__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(360px, .7fr);
	align-items: center;
	gap: clamp(40px, 7vw, 100px);
	width: min(calc(100% - 48px), var(--max));
	margin: 0 auto;
	padding: clamp(32px, 4vw, 54px) 0 clamp(76px, 9vw, 128px);
}

.kokubunji-hub__copy .tama-breadcrumbs {
	margin-bottom: clamp(50px, 7vw, 92px);
	color: rgba(255, 255, 255, .74);
}

.kokubunji-hub__route {
	padding: clamp(28px, 4vw, 44px);
	border-radius: 28px;
	background: var(--paper);
	box-shadow: 0 28px 70px rgba(4, 20, 15, .28);
}

.kokubunji-hub__route-list {
	display: grid;
	gap: 0;
	margin: 28px 0;
	padding: 0;
	list-style: none;
	counter-reset: pilot-route;
}

.kokubunji-hub__route-list li {
	position: relative;
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 4px 14px;
	min-height: 72px;
	padding-bottom: 18px;
	counter-increment: pilot-route;
}

.kokubunji-hub__route-list li::before {
	content: counter(pilot-route, decimal-leading-zero);
	grid-row: 1 / 3;
	display: grid;
	width: 38px;
	height: 38px;
	place-items: center;
	border-radius: 50%;
	background: var(--persimmon);
	color: var(--white);
	font-size: 12px;
	font-weight: 700;
}

.kokubunji-hub__route-list li:not(:last-child)::after {
	position: absolute;
	top: 40px;
	bottom: 2px;
	left: 18px;
	width: 2px;
	background: rgba(49, 91, 73, .24);
	content: "";
}

.kokubunji-hub__route-list strong {
	font-size: 20px;
}

.kokubunji-hub__route-list span {
	color: var(--muted);
	font-size: 14px;
}

.kokubunji-hub__intro,
.kokubunji-hub__courses {
	width: min(calc(100% - 48px), var(--max));
	margin: 0 auto;
	padding: clamp(76px, 9vw, 130px) 0;
}

.kokubunji-hub__pillars {
	gap: 18px;
	margin-top: 52px;
}

.kokubunji-hub__pillars > .wp-block-column {
	padding: 28px;
	border: 1px solid var(--line);
	border-radius: 18px;
}

.kokubunji-hub__stories {
	padding: clamp(72px, 9vw, 124px) 0;
}

.tama-pilot-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin-top: 40px;
}

.tama-pilot-card {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: var(--white);
}

.tama-pilot-card__visual {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--moss-dark);
}

.tama-pilot-card__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.tama-pilot-card:hover .tama-pilot-card__visual img {
	transform: scale(1.035);
}

.tama-pilot-card__placeholder {
	display: grid;
	height: 100%;
	place-items: center;
	color: rgba(255, 255, 255, .68);
	font-size: 28px;
	font-weight: 700;
	letter-spacing: .18em;
}

.tama-pilot-card__body {
	padding: 24px;
}

.tama-pilot-card__body h3 {
	margin: 10px 0 12px;
}

.tama-pilot-card__body h3 a,
.tama-pilot-card__more {
	color: inherit;
	text-decoration: none;
}

.tama-pilot-card__body > p:not(.editorial-eyebrow) {
	color: var(--muted);
}

.tama-pilot-card__more {
	font-weight: 700;
}

.tama-pilot-empty {
	margin-top: 34px;
	padding: 28px;
	border: 1px dashed var(--line);
	border-radius: 16px;
	color: var(--muted);
}

.kokubunji-hub__cta {
	padding: clamp(72px, 9vw, 120px) 24px;
}

@media (max-width: 900px) {
	.trust-page__principles,
	.contact-page__types,
	.tama-pilot-grid {
		grid-template-columns: 1fr 1fr;
	}

	.kokubunji-hub__hero-grid {
		grid-template-columns: 1fr;
	}

	.kokubunji-hub__copy {
		max-width: 760px;
	}
}

@media (max-width: 640px) {
	.trust-page__hero-inner,
	.trust-page__content,
	.area-pilot-banner,
	.kokubunji-hub__hero-grid,
	.kokubunji-hub__intro,
	.kokubunji-hub__courses {
		width: min(calc(100% - 36px), var(--max));
	}

	.trust-page__principles,
	.contact-page__types,
	.tama-pilot-grid,
	.tama-contact-form__split {
		grid-template-columns: 1fr;
	}

	.contact-page__form-section {
		padding: 28px 18px;
	}

	.area-pilot-banner {
		grid-template-columns: 1fr;
	}

	.area-pilot-banner__action a,
	.tama-contact-form__submit {
		width: 100%;
		box-sizing: border-box;
		justify-content: center;
	}

	.kokubunji-hub__hero-grid {
		padding-bottom: 72px;
	}

	.kokubunji-hub__pillars {
		display: grid;
		grid-template-columns: 1fr;
	}
}

/* v3.5: purpose-built first views for primary discovery archives. */
.portal-header .portal-nav {
	gap: clamp(14px, 1.7vw, 28px);
}

.archive-fv {
	position: relative;
	display: flex;
	min-height: clamp(560px, 47vw, 720px);
	align-items: stretch;
	overflow: hidden;
	isolation: isolate;
}

.archive-fv::before,
.archive-fv::after {
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.archive-fv::before {
	top: -210px;
	right: -120px;
	width: 520px;
	height: 520px;
	border: 1px solid currentColor;
	opacity: .12;
}

.archive-fv::after {
	bottom: -260px;
	left: 12%;
	width: 430px;
	height: 430px;
	border: 1px solid currentColor;
	opacity: .08;
}

.archive-fv__frame {
	width: min(calc(100% - 48px), var(--max));
	margin: 0 auto;
	padding: clamp(28px, 3vw, 46px) 0 clamp(62px, 7vw, 102px);
}

.archive-fv .tama-breadcrumbs {
	margin-bottom: clamp(44px, 5vw, 76px);
}

.archive-fv__grid {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(460px, 1.08fr);
	gap: clamp(48px, 7vw, 112px);
	align-items: center;
}

.archive-fv__copy {
	z-index: 2;
	max-width: 660px;
}

.archive-fv__copy > * {
	margin-block-start: 0;
}

.archive-fv__copy h1 {
	margin-block: 16px 24px;
	font-size: clamp(52px, 6.2vw, 90px) !important;
	letter-spacing: .035em;
	line-height: 1.22;
	text-wrap: balance;
}

.archive-fv__copy .has-lead-font-size {
	max-width: 580px;
	margin-bottom: 0;
	line-height: 1.9;
}

/* v3.5.6: the model-course hero is copy-led; the former route card is gone. */
.archive-fv--courses .archive-fv__grid {
	grid-template-columns: minmax(0, 1fr);
}

.archive-fv--courses .archive-fv__copy {
	width: 100%;
	max-width: 1040px;
}

.archive-fv--courses .archive-fv__copy h1 {
	max-width: 12em;
}

.archive-fv--courses .archive-fv__copy .has-lead-font-size {
	max-width: 820px;
}

.archive-fv__facts {
	gap: 22px !important;
	margin-top: 36px;
}

.archive-fv__facts p {
	display: flex;
	min-width: 130px;
	align-items: baseline;
	gap: 9px;
	margin: 0;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}

.archive-fv__facts strong {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 42px;
	font-weight: 500;
}

.archive-fv__facts span {
	font-size: 13px;
	font-weight: 800;
}

.archive-fv--areas {
	background:
		linear-gradient(135deg, rgba(199, 221, 225, .5), transparent 48%),
		var(--paper);
}

.area-fv__visual {
	position: relative;
	min-height: 450px;
}

.area-fv__map {
	position: absolute;
	inset: 0 2% 6% 0;
	display: grid;
	margin: 0;
	place-items: center;
	border: 1px solid rgba(32, 39, 32, .14);
	border-radius: 48% 52% 44% 56% / 52% 44% 56% 48%;
	background: rgba(255, 255, 255, .7);
	box-shadow: 0 32px 70px rgba(23, 63, 50, .14);
	transform: rotate(-2deg);
}

.area-fv__map img {
	width: 108%;
	max-width: none;
	transform: rotate(2deg);
}

.area-fv__photo {
	position: absolute;
	right: -8px;
	bottom: -24px;
	width: clamp(150px, 14vw, 220px);
	margin: 0;
	overflow: hidden;
	border: 8px solid var(--paper);
	border-radius: 50%;
	box-shadow: 0 22px 46px rgba(23, 63, 50, .24);
}

.area-fv__photo img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

.area-fv__caption {
	position: absolute;
	top: 18px;
	right: 22px;
	margin: 0;
	font-weight: 900;
	letter-spacing: .16em;
}

.archive-fv--stories,
.archive-fv--information {
	color: var(--white);
	background: var(--moss-dark);
}

.archive-fv--stories {
	background:
		radial-gradient(circle at 78% 24%, rgba(231, 201, 109, .18), transparent 28%),
		linear-gradient(130deg, #173f32 0%, #244d3f 58%, #173f32 100%);
}

.archive-fv--stories .tama-breadcrumbs,
.archive-fv--stories .tama-breadcrumbs a,
.archive-fv--information .tama-breadcrumbs,
.archive-fv--information .tama-breadcrumbs a,
.archive-fv--courses .tama-breadcrumbs,
.archive-fv--courses .tama-breadcrumbs a {
	color: var(--white);
}

.story-fv__query .wp-block-post-template,
.information-fv__query .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.story-fv__card {
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 4px 52px 4px 4px;
	background: var(--paper);
	box-shadow: 0 34px 80px rgba(4, 22, 15, .35);
	color: var(--ink);
	transform: rotate(1.5deg);
}

.story-fv__card .wp-block-post-featured-image {
	margin: 0;
}

.story-fv__card .wp-block-post-featured-image img {
	width: 100%;
}

.story-fv__card-body {
	padding: clamp(22px, 3vw, 36px);
}

.story-fv__card-body > * {
	margin-block-start: 0;
}

.story-fv__card-body .wp-block-post-title {
	margin-top: 14px;
	line-height: 1.55;
}

.story-fv__card-body .wp-block-group {
	color: var(--muted);
}

.archive-fv--courses {
	color: var(--white);
	background:
		linear-gradient(90deg, rgba(12, 35, 27, .94) 0%, rgba(12, 35, 27, .8) 54%, rgba(12, 35, 27, .58) 100%),
		url("/wp-content/themes/tama-yorimichi/assets/images/showa-park.jpg") center / cover;
}

.course-fv__actions {
	margin-top: 32px;
}

.course-fv__visual {
	position: relative;
	padding: clamp(28px, 4vw, 48px);
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 30px;
	background: rgba(246, 241, 231, .94);
	box-shadow: 0 30px 70px rgba(4, 22, 15, .32);
	color: var(--ink);
	backdrop-filter: blur(12px);
}

.course-fv__route-title {
	margin: 0 0 24px;
	color: var(--persimmon);
	font-weight: 900;
	letter-spacing: .18em;
}

.course-fv__route {
	position: relative;
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: route-stop;
}

.course-fv__route::before {
	position: absolute;
	top: 28px;
	bottom: 28px;
	left: 19px;
	width: 2px;
	background: repeating-linear-gradient(to bottom, var(--moss) 0 7px, transparent 7px 13px);
	content: "";
}

.course-fv__route li {
	position: relative;
	display: flex;
	min-height: 88px;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 0 18px 66px;
	border-bottom: 1px solid var(--line);
	counter-increment: route-stop;
}

.course-fv__route li::before {
	position: absolute;
	left: 0;
	display: grid;
	width: 40px;
	height: 40px;
	place-items: center;
	border: 2px solid var(--moss);
	border-radius: 50%;
	background: var(--paper);
	color: var(--moss-dark);
	content: counter(route-stop, decimal-leading-zero);
	font-size: 11px;
	font-weight: 900;
}

.course-fv__route li span {
	color: var(--muted);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .14em;
}

.course-fv__route-meta {
	margin: 22px 0 0;
	color: var(--muted);
}

.archive-fv--information {
	min-height: clamp(500px, 41vw, 640px);
	background:
		radial-gradient(circle at 82% 18%, rgba(219, 116, 75, .3), transparent 25%),
		linear-gradient(125deg, #173f32, #315b49);
}

.information-fv__card {
	padding: clamp(28px, 4vw, 48px);
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 28px 4px 28px 4px;
	background: var(--paper);
	box-shadow: 22px 24px 0 rgba(231, 201, 109, .22), 0 34px 70px rgba(4, 22, 15, .3);
	color: var(--ink);
}

.information-fv__card > * {
	margin-block-start: 0;
}

.information-fv__card .wp-block-post-date {
	margin-top: 18px;
	color: var(--muted);
}

.information-fv__card .wp-block-post-title {
	margin-top: 18px;
	line-height: 1.55;
}

.information-fv__card .wp-block-post-excerpt__excerpt {
	color: var(--muted);
	line-height: 1.8;
}

@media (max-width: 1080px) {
	.archive-fv__grid {
		grid-template-columns: minmax(0, .9fr) minmax(390px, 1.1fr);
		gap: 40px;
	}

	.archive-fv__copy h1 {
		font-size: clamp(46px, 6.4vw, 70px) !important;
	}
}

@media (max-width: 782px) {
	.archive-fv {
		min-height: 0;
	}

	.archive-fv__frame {
		width: min(calc(100% - 36px), var(--max));
		padding: 22px 0 70px;
	}

	.archive-fv .tama-breadcrumbs {
		margin-bottom: 42px;
	}

	.archive-fv__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 48px;
	}

	.archive-fv__copy h1 {
		font-size: clamp(42px, 13vw, 58px) !important;
		line-height: 1.28;
	}

	.archive-fv__copy .has-lead-font-size {
		font-size: 16px !important;
	}

	.area-fv__visual {
		min-height: 330px;
	}

	.area-fv__map {
		inset: 0 0 2% 0;
		border-radius: 34% 66% 44% 56% / 50% 42% 58% 50%;
	}

	.area-fv__photo {
		right: -4px;
		bottom: -14px;
		width: 128px;
		border-width: 6px;
	}

	.story-fv__card {
		transform: none;
	}

	.course-fv__visual,
	.information-fv__card {
		padding: 26px 22px;
	}

	.information-fv__card {
		box-shadow: 12px 14px 0 rgba(231, 201, 109, .2), 0 28px 60px rgba(4, 22, 15, .25);
	}
}

/* v3.4.9: independent information archive. */
.information-page__hero .tama-breadcrumbs,
.information-page__hero .tama-breadcrumbs a,
.information-page__hero .tama-breadcrumbs span {
	color: var(--white);
}

.information-page__hero .editorial-eyebrow {
	margin-bottom: 12px;
}

.information-page__hero h1,
.information-page__lead {
	max-width: 820px;
}

.information-page__content {
	width: min(calc(100% - 40px), 1080px);
}

.information-page__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
}

.information-page__item {
	display: grid;
	grid-template-columns: minmax(112px, 150px) minmax(0, 1fr) auto;
	gap: 24px 42px;
	align-items: start;
	margin: 0;
	padding: 32px 0;
	border-bottom: 1px solid var(--line);
}

.information-page__date {
	margin: 6px 0 0;
	color: var(--muted);
	font-weight: 700;
	letter-spacing: .06em;
}

.information-page__summary {
	gap: 10px;
}

.information-page__summary > * {
	margin-block: 0;
}

.information-page__summary .wp-block-post-title {
	line-height: 1.55;
}

.information-page__summary .wp-block-post-title a:hover,
.information-page__summary .wp-block-post-title a:focus-visible,
.information-page__read-more:hover,
.information-page__read-more:focus-visible {
	color: var(--persimmon);
}

.information-page__summary .wp-block-post-excerpt__excerpt {
	margin: 10px 0 0;
	color: var(--muted);
	line-height: 1.8;
}

.information-page__read-more {
	display: inline-flex;
	align-items: center;
	margin-top: 5px;
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

.information-page__query .wp-block-query-pagination {
	margin-top: 48px;
}

@media (max-width: 782px) {
	.information-page__hero {
		padding-block: 64px !important;
	}

	.information-page__hero h1 {
		font-size: clamp(44px, 14vw, 64px) !important;
	}

	.information-page__content {
		width: min(calc(100% - 36px), 1080px);
		padding-block: 72px !important;
	}

	.information-page__item {
		grid-template-columns: 1fr auto;
		gap: 14px 20px;
		padding: 26px 0;
	}

	.information-page__date {
		grid-column: 1 / -1;
		margin-top: 0;
	}

	.information-page__summary {
		grid-column: 1 / -1;
	}

	.information-page__read-more {
		grid-column: 1 / -1;
		margin-top: 2px;
	}
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
}

.wp-site-blocks {
	padding: 0;
}

.wp-site-blocks > *,
.wp-block-template-part {
	margin-block-start: 0;
	margin-block-end: 0;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	display: block;
	max-width: 100%;
}

.portal-header {
	position: sticky;
	top: 0;
	z-index: 100;
	display: grid;
	width: 100%;
	min-height: 92px;
	grid-template-columns: minmax(250px, .8fr) minmax(460px, 1.4fr) auto;
	align-items: center;
	gap: 32px;
	padding: 12px max(24px, calc((100vw - var(--max)) / 2));
	border-top: 5px solid var(--moss);
	border-bottom: 1px solid var(--line);
	background: rgba(246, 241, 231, .95);
	backdrop-filter: blur(16px);
}

.admin-bar .portal-header {
	top: 32px;
}

.portal-brand {
	display: inline-flex;
	width: fit-content;
	flex-direction: column;
	gap: 4px;
}

.portal-brand-en {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .22em;
}

.portal-brand strong {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 19px;
	font-weight: 600;
	letter-spacing: .08em;
}

.portal-en .portal-brand strong {
	font-family: inherit;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .12em;
}

.portal-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(20px, 2.4vw, 40px);
}

.portal-nav a {
	position: relative;
	padding: 10px 0;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .04em;
}

.portal-nav a::after {
	position: absolute;
	right: 0;
	bottom: 4px;
	left: 0;
	height: 2px;
	background: var(--persimmon);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
}

.portal-nav a:hover::after,
.portal-nav a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left;
}

.portal-tools {
	display: flex;
	align-items: center;
	gap: 12px;
}

.tool-icon {
	display: inline-flex;
	width: 58px;
	height: 58px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--moss);
	border-radius: 50%;
	background: var(--white);
	transition: transform 180ms ease, background-color 180ms ease, color 180ms ease;
}

.tool-icon:hover,
.tool-icon:focus-visible {
	background: var(--moss-dark);
	color: white;
	transform: translateY(-2px);
}

.tool-icon span {
	font-size: 17px;
	font-weight: 800;
	line-height: 1;
}

.search-tool span {
	font-size: 25px;
	font-weight: 500;
}

.tool-icon small {
	margin-top: 4px;
	font-size: 6px;
	font-weight: 900;
	letter-spacing: .12em;
}

.language-tool {
	position: relative;
	border: 2px solid var(--persimmon);
}

.language-tool::before,
.language-tool::after {
	position: absolute;
	border: 1px solid rgba(219, 116, 75, .55);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.language-tool::before {
	inset: 6px -4px;
}

.language-tool::after {
	inset: -4px 13px;
}

.area-home-link {
	display: inline-flex;
	min-height: 42px;
	align-items: center;
	padding: 0 18px;
	border: 1px solid var(--moss-dark);
	border-radius: 999px;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .08em;
}

.area-home-link:hover,
.area-home-link:focus-visible {
	background: var(--moss-dark);
	color: white;
}

.tama-area-hero,
.wp-block-tama-area-hero {
	position: relative;
	min-height: 650px;
	overflow: hidden;
	background: var(--moss-dark);
	isolation: isolate;
}

.tama-area-hero__slides,
.tama-area-hero__slide,
.tama-area-hero__shade {
	position: absolute;
	inset: 0;
}

.tama-area-hero__slide {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--tama-fade, 1s) ease, visibility 0s linear var(--tama-fade, 1s);
}

.tama-area-hero__slide.is-active {
	z-index: 1;
	opacity: 1;
	visibility: visible;
	transition-delay: 0s;
}

.tama-area-hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.025);
}

.tama-area-hero__slide.is-active img {
	animation: tama-hero-zoom 5s ease-out both;
}

@keyframes tama-hero-zoom {
	from { transform: scale(1.025); }
	to { transform: scale(1.075); }
}

.tama-area-hero__shade {
	z-index: 2;
	background: linear-gradient(135deg, color-mix(in srgb, var(--tama-hero-overlay, #173f32) 62%, transparent), rgba(32, 39, 32, .32));
	pointer-events: none;
}

.tama-area-hero__headline {
	position: absolute;
	inset: 0;
	z-index: 4;
	display: grid;
	place-items: center;
	padding: 48px 24px;
	margin: 0;
	color: var(--tama-hero-text, white);
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(48px, 6vw, var(--tama-headline-size, 88px));
	font-weight: 500;
	line-height: 1.28;
	letter-spacing: .035em;
	text-align: center;
	text-shadow: 0 2px 24px rgba(13, 37, 29, .38);
	white-space: nowrap;
	pointer-events: none;
}

.tama-area-hero__link {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: block;
}

.tama-area-hero__label {
	position: absolute;
	bottom: clamp(24px, 4vw, 54px);
	left: max(22px, calc((100vw - var(--max)) / 2));
	display: flex;
	max-width: min(420px, calc(100% - 44px));
	flex-direction: column;
	align-items: flex-start;
	color: white;
	text-shadow: 0 2px 14px rgba(13, 37, 29, .95), 0 1px 3px rgba(13, 37, 29, .95);
}

.tama-area-hero__label small {
	margin-bottom: 7px;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .18em;
}

.tama-area-hero__label strong {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(24px, 3vw, 40px);
	font-weight: 600;
	line-height: 1.25;
}

.tama-area-hero__label em {
	margin-top: 7px;
	font-size: 10px;
	font-style: normal;
	line-height: 1.5;
}

.tama-area-hero__label > span {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 9px 14px;
	margin-top: 13px;
	border: 1px solid white;
	border-radius: 999px;
	background: white;
	color: var(--moss-dark);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .08em;
	text-shadow: none;
}

.tama-area-hero__link:hover .tama-area-hero__label > span,
.tama-area-hero__link:focus-visible .tama-area-hero__label > span {
	border-color: var(--persimmon);
	background: var(--persimmon);
	color: white;
}

.purpose-nav {
	position: relative;
	z-index: 30;
	margin: 0;
	border-bottom: 1px solid var(--line);
	background: var(--paper);
}

.purpose-nav__list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	padding: 0;
	margin: 0;
	list-style: none;
}

.purpose-nav__item {
	position: relative;
	min-width: 0;
	border-right: 1px solid var(--line);
}

.purpose-nav__item:last-child {
	border-right: 0;
}

.purpose-nav__head {
	display: flex;
	min-height: 148px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 18px;
	text-align: center;
	transition: background-color 180ms ease, color 180ms ease;
}

.purpose-nav__item:hover .purpose-nav__head,
.purpose-nav__item:focus-within .purpose-nav__head {
	background: var(--persimmon);
	color: white;
}

.purpose-icon.dashicons {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	margin-bottom: 10px;
	border: 1px solid currentcolor;
	border-radius: 50%;
	color: var(--persimmon);
	font-size: 23px;
	line-height: 44px;
}

.purpose-nav__item:hover .purpose-icon,
.purpose-nav__item:focus-within .purpose-icon {
	color: white;
}

.purpose-nav strong {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 20px;
	font-weight: 600;
}

.purpose-nav small {
	margin-top: 6px;
	color: var(--muted);
	font-size: 9px;
}

.purpose-nav__item:hover .purpose-nav__head small,
.purpose-nav__item:focus-within .purpose-nav__head small {
	color: white;
}

.purpose-nav__chevron {
	position: absolute;
	right: 13px;
	bottom: 10px;
	font-size: 17px;
	line-height: 1;
	transition: transform 180ms ease;
}

.purpose-nav__item:hover .purpose-nav__chevron,
.purpose-nav__item:focus-within .purpose-nav__chevron {
	transform: rotate(180deg);
}

.purpose-subnav {
	position: absolute;
	top: 100%;
	right: 10px;
	left: 10px;
	padding: 7px;
	margin: -1px 0 0;
	border-top: 3px solid var(--persimmon);
	box-shadow: 0 18px 38px rgba(38, 50, 32, .2);
	background: white;
	list-style: none;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-8px);
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
	visibility: hidden;
}

.purpose-nav__item:hover .purpose-subnav,
.purpose-nav__item:focus-within .purpose-subnav {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}

.purpose-subnav li + li {
	border-top: 1px solid var(--line);
}

.purpose-subnav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 10px;
	color: var(--ink);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	text-align: left;
	transition: background-color 140ms ease, color 140ms ease, padding 140ms ease;
}

.purpose-subnav a:hover,
.purpose-subnav a:focus-visible {
	padding-right: 7px;
	padding-left: 13px;
	background: var(--paper-2);
	color: var(--persimmon);
}

.purpose-subnav a > span:last-child {
	font-size: 14px;
}

.content-section {
	padding: 112px max(24px, calc((100vw - var(--max)) / 2));
}

.portal-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, .62fr);
	align-items: end;
	gap: 70px;
	margin-bottom: 52px;
}

.section-kicker {
	color: var(--moss);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .24em;
}

.portal-section-heading h2,
.information-title h2,
.area-detail-section-title h2 {
	margin: 16px 0 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(calc(34px * var(--tama-heading-scale, 1)), calc(3.7vw * var(--tama-heading-scale, 1)), calc(54px * var(--tama-heading-scale, 1)));
	font-weight: 500;
	line-height: 1.35;
}

.portal-section-heading > p {
	margin: 0;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.9;
}

.area-guide {
	background: var(--paper-2);
}

.area-card-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 18px;
}

.area-card {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: 24px;
	background: var(--white);
	transition: transform 200ms ease, box-shadow 200ms ease;
}

.area-card:hover,
.area-card:focus-visible {
	box-shadow: 0 20px 50px rgba(23, 63, 50, .14);
	transform: translateY(-6px);
}

.area-card-image {
	position: relative;
	height: 230px;
	overflow: hidden;
	background: var(--sky);
}

.area-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms ease;
}

.area-card:hover .area-card-image img,
.area-card:focus-visible .area-card-image img {
	transform: scale(1.04);
}

.area-card-image > span {
	position: absolute;
	top: 15px;
	left: 15px;
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border-radius: 50%;
	background: var(--moss-dark);
	color: white;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 16px;
}

.area-card-copy {
	position: relative;
	min-height: 240px;
	padding: 24px 23px 28px;
}

.area-card-copy small {
	color: var(--persimmon);
	font-size: 9px;
	font-weight: 900;
}

.area-card-copy h3 {
	margin: 12px 0 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.4;
}

.area-card-copy p {
	margin: 14px 0 0;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.75;
}

.card-arrow {
	position: absolute;
	right: 21px;
	bottom: 20px;
	display: grid;
	width: 35px;
	height: 35px;
	place-items: center;
	border: 1px solid var(--moss);
	border-radius: 50%;
}

.stories-section {
	background: var(--paper);
}

.compact-heading {
	grid-template-columns: 1fr auto;
}

.section-index-link {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding-bottom: 5px;
	border-bottom: 1px solid currentcolor;
	font-size: 11px;
	font-weight: 800;
}

.story-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 46px 22px;
}

.story-card {
	min-width: 0;
}

.story-image {
	position: relative;
	display: block;
	height: 270px;
	overflow: hidden;
	border-radius: 18px;
	background: var(--sky);
}

.story-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 260ms ease;
}

.story-image:hover img,
.story-image:focus-visible img {
	transform: scale(1.04);
}

.story-image > span {
	position: absolute;
	top: 0;
	left: 0;
	padding: 9px 14px;
	border-bottom-right-radius: 12px;
	background: var(--persimmon);
	color: white;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .06em;
}

.story-copy {
	padding: 18px 4px 0;
}

.story-copy h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.6;
}

.story-copy h3 a:hover,
.story-copy h3 a:focus-visible {
	color: var(--persimmon);
}

.story-copy time {
	display: block;
	margin-top: 10px;
	color: var(--muted);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .08em;
}

.courses-section {
	background: var(--moss-dark);
	color: white;
}

.courses-section .section-kicker,
.courses-section .portal-section-heading > p {
	color: var(--sky);
}

.course-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}

.course-card {
	position: relative;
	display: flex;
	min-height: 330px;
	flex-direction: column;
	padding: 27px;
	overflow: hidden;
	border-radius: 24px;
	color: var(--ink);
	transition: transform 200ms ease;
}

.course-card:hover,
.course-card:focus-visible {
	transform: translateY(-6px) rotate(-.4deg);
}

.course-tone-sky { background: var(--sky); }
.course-tone-sage { background: var(--sage); }
.course-tone-peach { background: #e8c4ad; }

.course-number {
	position: absolute;
	top: -23px;
	right: 16px;
	color: rgba(255, 255, 255, .56);
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 115px;
	line-height: 1;
}

.course-card > small {
	position: relative;
	z-index: 1;
	width: fit-content;
	padding-bottom: 5px;
	border-bottom: 1px solid currentcolor;
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .1em;
}

.course-card h3 {
	position: relative;
	z-index: 1;
	max-width: 340px;
	margin: auto 0 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 25px;
	font-weight: 600;
	line-height: 1.5;
}

.course-card p {
	margin: 16px 0 0;
	font-size: 11px;
	font-weight: 700;
}

.course-arrow {
	position: absolute;
	right: 25px;
	bottom: 22px;
	font-size: 22px;
}

.information-section {
	display: grid;
	max-width: var(--max);
	grid-template-columns: .52fr 1.48fr;
	gap: 80px;
	padding: 90px 24px;
	margin: 0 auto;
}

.information-title h2 {
	font-size: 38px;
}

.information-list {
	border-top: 1px solid var(--ink);
}

.information-list a {
	display: grid;
	grid-template-columns: 125px 1fr auto;
	align-items: center;
	gap: 20px;
	min-height: 72px;
	border-bottom: 1px solid var(--line);
	transition: color 180ms ease, padding 180ms ease;
}

.information-list a:hover,
.information-list a:focus-visible {
	padding-left: 8px;
	color: var(--persimmon);
}

.information-list time {
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .06em;
}

.information-list span {
	font-size: 13px;
}

.portal-footer {
	padding: 72px max(24px, calc((100vw - var(--max)) / 2)) 28px;
	background: var(--ink);
	color: white;
}

.portal-footer > * {
	max-width: var(--max) !important;
}

.footer-brand {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-bottom: 38px;
	border-bottom: 1px solid rgba(255, 255, 255, .22);
}

.footer-brand p {
	margin: 0;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .22em;
}

.footer-brand strong {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 25px;
	font-weight: 500;
	letter-spacing: .08em;
}

.footer-links {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 55px;
	padding: 46px 0;
}

.footer-links > .wp-block-column {
	display: flex;
	flex-direction: column;
	gap: 11px;
}

.footer-links h3 {
	margin: 0 0 8px;
	color: var(--sky);
	font-family: inherit;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
}

.footer-links p {
	margin: 0;
}

.footer-links a {
	width: fit-content;
	color: rgba(255, 255, 255, .76);
	font-size: 11px;
}

.footer-links a:hover,
.footer-links a:focus-visible {
	color: white;
	text-decoration: underline;
}

.footer-bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, .22);
}

.footer-bottom p {
	margin: 0;
	color: rgba(255, 255, 255, .55);
	font-size: 8px;
	line-height: 1.7;
}

.photo-credits {
	max-width: 680px;
	text-align: right;
}

.area-editorial {
	margin: 0;
	background: var(--paper);
}

.area-editorial-hero {
	position: relative;
	display: grid;
	min-height: min(780px, calc(100svh - 92px));
	grid-template-columns: clamp(430px, 40vw, 620px) minmax(0, 1fr);
	overflow: hidden;
}

.area-editorial-copy {
	position: relative;
	z-index: 2;
	display: flex;
	min-width: 0;
	flex-direction: column;
	justify-content: center;
	padding: 58px 42px 74px max(26px, calc((100vw - var(--max)) / 2));
}

.area-breadcrumb {
	position: absolute;
	top: 32px;
	left: max(26px, calc((100vw - var(--max)) / 2));
	color: var(--moss-dark);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .14em;
}

.area-breadcrumb span,
.area-english-name {
	color: var(--area-accent);
}

.area-edition-mark {
	display: flex;
	width: 104px;
	height: 104px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 3px;
	padding: 12px;
	border: 1px solid var(--area-accent);
	border-radius: 50%;
	color: var(--moss-dark);
	text-align: center;
}

.area-edition-mark > span {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 35px;
	line-height: 1;
}

.area-edition-mark small {
	display: block;
	max-width: 58px;
	font-size: 6px;
	font-weight: 900;
	line-height: 1.25;
	letter-spacing: .06em;
}

.area-english-name {
	margin: 38px 0 0;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .2em;
}

.area-editorial-copy h1 {
	position: relative;
	z-index: 2;
	width: 100%;
	margin: 12px 0 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(calc(58px * var(--tama-area-title-scale, 1)), calc(5.3vw * var(--tama-area-title-scale, 1)), calc(80px * var(--tama-area-title-scale, 1)));
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: .025em;
	white-space: nowrap;
}

.area-places {
	margin: 25px 0 0;
	color: var(--muted);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.7;
}

.area-scroll-link {
	display: inline-flex;
	width: fit-content;
	min-width: 168px;
	min-height: 48px;
	align-items: center;
	justify-content: space-between;
	padding: 0 17px;
	margin-top: 38px;
	border-bottom: 1px solid var(--moss-dark);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .05em;
}

.area-scroll-link span {
	color: var(--area-accent);
	font-size: 15px;
}

.area-editorial-visual {
	position: relative;
	min-width: 0;
	margin: 30px 0 48px;
	overflow: hidden;
	border-bottom-left-radius: 128px;
	background: var(--area-soft);
}

.area-editorial-visual::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(120deg, rgba(23, 63, 50, .14), transparent 58%);
	content: "";
	pointer-events: none;
}

.area-editorial-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 900ms ease;
}

.area-editorial-visual:hover img {
	transform: scale(1.025);
}

.area-editorial-visual figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	min-width: 220px;
	flex-direction: column;
	gap: 5px;
	padding: 20px 25px;
	border-top-left-radius: 24px;
	background: var(--paper);
}

.area-editorial-visual figcaption span {
	color: var(--area-accent);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .16em;
}

.area-editorial-visual figcaption strong {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 18px;
	font-weight: 600;
}

.area-hero-sideword {
	position: absolute;
	right: 9px;
	bottom: 64px;
	z-index: 3;
	margin: 0;
	color: white;
	font-size: 6px;
	font-weight: 900;
	letter-spacing: .18em;
	writing-mode: vertical-rl;
}

.area-local-index {
	position: relative;
	z-index: 4;
	display: grid;
	max-width: 1080px;
	grid-template-columns: repeat(3, 1fr);
	margin: -22px auto 0;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: var(--white);
	box-shadow: 0 16px 44px rgba(23, 63, 50, .08);
	overflow: hidden;
}

.area-local-index a {
	display: flex;
	min-height: 82px;
	align-items: center;
	gap: 18px;
	padding: 18px 25px;
	border-right: 1px solid var(--line);
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 13px;
	font-weight: 600;
}

.area-local-index a:last-child {
	border-right: 0;
}

.area-local-index a:hover,
.area-local-index a:focus-visible {
	background: var(--area-soft);
}

.area-local-index span {
	display: grid;
	width: 34px;
	height: 34px;
	flex: 0 0 auto;
	place-items: center;
	border-radius: 50%;
	background: var(--area-accent);
	color: white;
	font-size: 9px;
	font-weight: 900;
}

#area-about,
#area-highlights,
#other-areas {
	scroll-margin-top: 90px;
}

.area-editorial-intro {
	display: grid;
	max-width: 1180px;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: clamp(40px, 7vw, 95px);
	padding: 135px 24px 125px;
	margin: 0 auto;
}

.area-intro-label {
	display: flex;
	min-height: 430px;
	align-items: center;
	justify-content: space-between;
	flex-direction: column;
	padding: 25px 0;
	border-right: 1px solid var(--area-accent);
	color: var(--area-accent);
}

.area-intro-label span {
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .2em;
	writing-mode: vertical-rl;
}

.area-intro-label b {
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 44px;
	font-weight: 500;
}

.area-intro-copy h2 {
	max-width: 900px;
	margin: 22px 0 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(36px, 4.25vw, 60px);
	font-weight: 500;
	line-height: 1.55;
}

.area-intro-body {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(230px, .85fr);
	align-items: start;
	gap: clamp(35px, 6vw, 85px);
	margin-top: 58px;
}

.area-intro-body__content,
.area-intro-body__content p {
	margin-top: 0;
	color: var(--muted);
	font-size: 14px;
	line-height: 2.15;
}

.municipality-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.municipality-list span {
	padding: 7px 11px;
	border: 1px solid color-mix(in srgb, var(--area-accent) 45%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--area-soft) 35%, white);
	font-size: 10px;
}

.area-editorial-highlights {
	padding: 120px max(24px, calc((100vw - var(--max)) / 2));
	background: var(--white);
}

.area-editorial-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, .48fr);
	align-items: end;
	gap: 80px;
	margin-bottom: 60px;
}

.area-editorial-heading h2 {
	margin: 18px 0 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(38px, 4.3vw, 60px);
	font-weight: 500;
	line-height: 1.3;
}

.area-editorial-heading > p {
	margin: 0;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.9;
}

.area-feature-list {
	border-top: 1px solid var(--ink);
}

.area-feature-row {
	display: grid;
	grid-template-columns: 105px minmax(0, 1fr) 105px;
	align-items: center;
	gap: 28px;
	min-height: 190px;
	padding: 28px 8px;
	border-bottom: 1px solid var(--line);
	transition: background-color 200ms ease, padding 200ms ease;
}

.area-feature-row:hover {
	padding-right: 20px;
	padding-left: 20px;
	background: color-mix(in srgb, var(--area-soft) 30%, white);
}

.area-feature-number {
	color: var(--area-accent);
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 48px;
	line-height: 1;
}

.area-feature-copy small {
	color: var(--area-accent);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .17em;
}

.area-feature-copy h3 {
	margin: 10px 0 0;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(23px, 2.5vw, 34px);
	font-weight: 600;
}

.area-feature-copy p {
	margin: 12px 0 0;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.7;
}

.area-feature-row > a {
	display: grid;
	width: 72px;
	height: 72px;
	place-items: center;
	justify-self: end;
	border: 1px solid var(--area-accent);
	border-radius: 50%;
	text-align: center;
}

.area-feature-row > a:hover,
.area-feature-row > a:focus-visible {
	background: var(--area-accent);
	color: white;
}

.area-feature-row > a span {
	align-self: end;
	font-size: 6px;
	font-weight: 900;
}

.area-feature-row > a b {
	align-self: start;
	font-size: 18px;
}

.other-areas-section {
	padding: 110px max(24px, calc((100vw - var(--max)) / 2));
	background: var(--moss-dark);
	color: white;
}

.other-areas-section .section-kicker {
	color: var(--sky);
}

.other-area-links {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid rgba(255, 255, 255, .35);
}

.other-area-links a {
	position: relative;
	display: flex;
	min-height: 128px;
	flex-direction: column;
	justify-content: center;
	padding: 24px 76px 24px 24px;
	border-right: 1px solid rgba(255, 255, 255, .22);
	border-bottom: 1px solid rgba(255, 255, 255, .22);
}

.other-area-links a:hover,
.other-area-links a:focus-visible {
	background: rgba(255, 255, 255, .08);
}

.other-area-links span {
	color: var(--sky);
	font-size: 9px;
	font-weight: 900;
	letter-spacing: .12em;
}

.other-area-links strong {
	margin-top: 8px;
	font-family: var(--wp--preset--font-family--mincho);
	font-size: 24px;
	font-weight: 500;
}

.other-area-links b {
	position: absolute;
	right: 26px;
	font-size: 24px;
}

.area-detail-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 30px max(24px, calc((100vw - var(--max)) / 2));
	margin: 0;
	background: var(--ink);
	color: rgba(255, 255, 255, .72);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .08em;
}

.area-detail-footer p {
	margin: 0;
}

.wp-block-post-content,
.tama-generic-content {
	max-width: 840px;
	padding: 80px 24px;
	margin: 0 auto;
}

@media (max-width: 1120px) {
	.portal-header { grid-template-columns: minmax(230px, 1fr) auto; }
	.portal-nav { display: none; }
	.portal-tools { justify-self: end; }
	.area-card-grid { grid-template-columns: repeat(3, 1fr); }
	.area-card-copy { min-height: 210px; }
}

@media (max-width: 900px) {
	.admin-bar .portal-header { top: 46px; }
	.portal-header { min-height: 80px; padding: 10px 20px; }
	.tool-icon { width: 52px; height: 52px; }
	.tama-area-hero, .wp-block-tama-area-hero { min-height: 430px; }
	.purpose-nav__list { grid-template-columns: repeat(2, 1fr); }
	.purpose-nav__item { border-bottom: 1px solid var(--line); }
	.purpose-nav__item:nth-child(2n) { border-right: 0; }
	.purpose-nav__item:last-child { grid-column: 1 / -1; }
	.purpose-nav__head { min-height: 135px; }
	.purpose-subnav {
		position: static;
		padding: 6px 12px 12px;
		margin: 0;
		border-top: 1px solid var(--line);
		box-shadow: none;
		opacity: 1;
		pointer-events: auto;
		transform: none;
		visibility: visible;
	}
	.purpose-subnav a { padding: 9px 6px; font-size: 11px; }
	.purpose-nav__chevron { display: none; }
	.content-section { padding: 90px 22px; }
	.portal-section-heading { grid-template-columns: 1fr; gap: 24px; }
	.area-card-grid, .story-grid { grid-template-columns: repeat(2, 1fr); }
	.compact-heading { grid-template-columns: 1fr auto; }
	.course-grid { grid-template-columns: 1fr; }
	.course-card { min-height: 280px; }
	.information-section { grid-template-columns: 1fr; gap: 38px; padding: 75px 22px; }
	.area-editorial-hero { min-height: 720px; grid-template-columns: minmax(350px, .88fr) minmax(0, 1.12fr); }
	.area-editorial-copy { padding-right: 22px; }
	.area-editorial-copy h1 { font-size: clamp(50px, 6.6vw, 60px); }
	.area-local-index { margin-right: 22px; margin-left: 22px; }
	.area-editorial-intro { grid-template-columns: 80px minmax(0, 1fr); gap: 42px; }
	.area-intro-body, .area-editorial-heading { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 620px) {
	.portal-brand-en { font-size: 8px; }
	.portal-brand strong { font-size: 16px; }
	.search-tool { display: none; }
	.tool-icon { width: 50px; height: 50px; }
	.tama-area-hero, .wp-block-tama-area-hero { min-height: 360px; }
	.tama-area-hero__headline { font-size: clamp(38px, 11vw, 54px); white-space: normal; }
	.tama-area-hero__label { bottom: 18px; left: 20px; }
	.tama-area-hero__label em { display: none; }
	.tama-area-hero__label > span { padding: 7px 11px; margin-top: 9px; }
	.portal-section-heading, .compact-heading { grid-template-columns: 1fr; }
	.area-card-grid, .story-grid { grid-template-columns: 1fr; }
	.area-card-image, .story-image { height: 245px; }
	.area-card-copy { min-height: 225px; }
	.information-list a { grid-template-columns: 1fr auto; gap: 7px 14px; padding: 14px 0; }
	.information-list time { grid-column: 1 / -1; }
	.information-list b { grid-column: 2; grid-row: 2; }
	.footer-links { grid-template-columns: 1fr; gap: 32px; }
	.footer-bottom { align-items: flex-start; flex-direction: column; }
	.photo-credits { text-align: left; }
	.area-home-link { display: none; }
	.area-editorial-hero { display: flex; min-height: auto; flex-direction: column; }
	.area-editorial-copy { min-height: 440px; padding: 76px 22px 46px; }
	.area-breadcrumb { top: 22px; left: 22px; }
	.area-edition-mark { width: 76px; height: 76px; padding: 12px; }
	.area-edition-mark > span { font-size: 28px; }
	.area-edition-mark small { max-width: 46px; font-size: 5px; }
	.area-english-name { margin-top: 28px; }
	.area-editorial-copy h1 { max-width: 100%; font-size: clamp(48px, 16vw, 72px); white-space: normal; }
	.area-scroll-link { margin-top: 26px; }
	.area-editorial-visual { min-height: 390px; margin: 0 0 34px 22px; border-bottom-left-radius: 64px; }
	.area-hero-sideword { bottom: 52px; }
	.area-local-index { grid-template-columns: 1fr; margin-top: -8px; }
	.area-local-index a { min-height: 64px; border-right: 0; border-bottom: 1px solid var(--line); }
	.area-local-index a:last-child { border-bottom: 0; }
	.area-editorial-intro { display: block; padding: 95px 22px 85px; }
	.area-intro-label { min-height: 0; align-items: center; justify-content: flex-start; flex-direction: row; gap: 16px; padding: 0 0 16px; border-right: 0; border-bottom: 1px solid var(--area-accent); }
	.area-intro-label span { writing-mode: initial; }
	.area-intro-label b { font-size: 25px; }
	.area-intro-copy { margin-top: 38px; }
	.area-intro-copy h2 { font-size: clamp(31px, 9.8vw, 44px); }
	.area-intro-body { margin-top: 38px; }
	.area-editorial-highlights { padding: 85px 22px; }
	.area-feature-row { grid-template-columns: 52px minmax(0, 1fr); gap: 15px; padding: 30px 0; }
	.area-feature-number { align-self: start; font-size: 31px; }
	.area-feature-row > a { grid-column: 2; display: inline-flex; width: auto; height: 38px; justify-self: start; gap: 10px; padding: 0 14px; border-radius: 999px; }
	.area-feature-row > a span, .area-feature-row > a b { align-self: auto; }
	.other-areas-section { padding: 82px 22px; }
	.other-area-links { grid-template-columns: 1fr; }
	.other-area-links a { border-right: 0; }
	.area-detail-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; }
	.tama-area-hero__slide img { animation: none; }
}

.editor-styles-wrapper .portal-header {
	position: relative;
	top: auto;
}

.editor-styles-wrapper .portal-content,
.editor-styles-wrapper .area-editorial {
	max-width: none;
}

/* Editable standard-block layouts (v2). */
.portal-header {
	grid-template-columns: minmax(220px,.8fr) minmax(460px,1.4fr) auto;
}
.portal-header > .portal-brand { margin: 0; }
.portal-brand p, .portal-brand .wp-block-site-title { margin: 0; }
.portal-brand .wp-block-site-title a,
.portal-brand .portal-brand-ja a { font-family: var(--wp--preset--font-family--mincho); font-weight: 600; letter-spacing: .08em; }
.portal-header .wp-block-navigation { flex: 1; }
.portal-tools { min-width: max-content; }
.portal-search .wp-block-search__button { width: 54px; height: 54px; padding: 0; border: 1px solid var(--moss); border-radius: 50%; background: var(--white); color: var(--moss-dark); }
.portal-search .wp-block-search__inside-wrapper { padding: 0; }
.language-tool .wp-block-button__link { display: grid; width: 54px; height: 54px; place-items: center; padding: 0; border: 2px solid var(--persimmon) !important; border-radius: 50%; color: var(--moss-dark); background: transparent; }

.editable-hero { position: relative; }
.editable-hero .wp-block-cover__inner-container { height: 100%; }
.hero-inner { position: relative; min-height: 650px; display: flex; flex-direction: column; justify-content: center; }
.hero-headline { margin: 0; text-shadow: 0 2px 24px rgba(13,37,29,.42); letter-spacing: .035em; }
.hero-lead {
	max-width: 760px;
	margin: 22px auto 0 !important;
	font-size: clamp(15px, 1.25vw, 19px) !important;
	font-weight: 500;
	line-height: 1.9;
	letter-spacing: .08em;
	text-align: center;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .42);
}
.hero-area-card { position: absolute; left: 0; bottom: 48px; max-width: 420px; margin: 0 !important; }
.hero-area-card > * { margin-block-start: 8px; }

.editable-purpose-nav { padding: 0 !important; border-bottom: 1px solid var(--line); }
.purpose-columns { gap: 0 !important; margin: 0 !important; }
.purpose-item { min-height: 150px; display: flex; flex-direction: column; justify-content: center; padding: 18px; border-right: 1px solid var(--line); }
.purpose-item:last-child { border-right: 0; }
.purpose-item > * { margin-block-start: 5px; margin-block-end: 5px; }
.purpose-symbol { width: 44px; height: 44px; display: grid; place-items: center; margin-inline: auto; border: 1px solid currentColor; border-radius: 50%; line-height: 1; }
.purpose-item h3 { font-size: 20px !important; }

.section-intro { align-items: end !important; margin-bottom: 48px; }
.editable-area-cards { gap: 18px; }
.editable-card { overflow: hidden; padding-bottom: 24px; border: 1px solid var(--line); border-radius: 22px; background: var(--white); }
.editable-card .wp-block-image { margin: 0; }
.editable-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.editable-card h3, .editable-card p { padding-inline: 20px; }
.editable-card h3 { margin-top: 22px; }
.course-editable-card { min-height: 300px; padding: 28px; border-radius: 24px; }
.information-row { min-height: 68px; padding-block: 14px; border-bottom: 1px solid var(--line); }
.tama-story-card { overflow: hidden; }
.tama-story-card .wp-block-post-featured-image img { border-radius: 18px; }
.area-page-hero .wp-block-cover__inner-container { width: 100%; }
.area-page-content { background: var(--paper); }

/* Keep editor controls usable and visually close to the front end. */
.editor-styles-wrapper .portal-header { position: relative; top: auto; }
.editor-styles-wrapper .hero-inner { min-height: 650px; }
.editor-styles-wrapper .wp-block-cover.editable-hero { min-height: 650px; }

@media (max-width: 1100px) {
	.portal-header { grid-template-columns: 1fr auto; min-height: 76px; }
	.portal-header > .portal-nav { order: 3; grid-column: 1 / -1; width: 100%; }
	.editable-area-cards { flex-wrap: wrap !important; }
	.editable-area-cards > .wp-block-column { flex-basis: calc(33.333% - 18px) !important; }
}

@media (max-width: 782px) {
	.admin-bar .portal-header { top: 46px; }
	.portal-header { padding-inline: 18px; gap: 12px; }
	.portal-tools { gap: 6px; }
	.portal-search .wp-block-search__button, .language-tool .wp-block-button__link { width: 46px; height: 46px; }
	.hero-inner { min-height: 560px; justify-content: flex-start; padding-top: 110px; }
	.hero-headline { font-size: clamp(40px, 11vw, 62px) !important; }
	.hero-area-card { right: 20px; bottom: 28px; left: 20px; }
	.purpose-columns { display: grid !important; grid-template-columns: repeat(2,1fr); }
	.purpose-item { border-bottom: 1px solid var(--line); }
	.purpose-item:nth-child(2n) { border-right: 0; }
	.editable-area-cards { display: grid !important; grid-template-columns: 1fr; }
	.editable-area-cards > .wp-block-column { flex-basis: 100% !important; }
	.content-section { padding: 72px 20px; }
}


/* Editable autoplay hero slider (v2.1). Each slide remains a standard Cover block. */
.editable-hero-slider {
	position: relative;
	min-height: 650px;
	padding: 0 !important;
	overflow: hidden;
	background: var(--moss-dark);
	isolation: isolate;
}

.editable-hero-slider > .editable-hero-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	min-height: 650px !important;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .9s ease, visibility 0s linear .9s;
}

.editable-hero-slider:not(.is-ready) > .editable-hero-slide:first-child,
.editable-hero-slider > .editable-hero-slide.is-active {
	z-index: 1;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.editable-hero-slider .editable-hero-slide .wp-block-cover__image-background {
	transform: scale(1.025);
	transition: transform 6s ease-out;
}

.editable-hero-slider .editable-hero-slide.is-active .wp-block-cover__image-background {
	transform: scale(1.075);
}

.tama-hero-slider-controls {
	position: absolute;
	right: max(24px, calc((100vw - var(--max)) / 2));
	bottom: 42px;
	z-index: 8;
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 8px 10px;
	border: 1px solid rgba(255, 255, 255, .48);
	border-radius: 999px;
	background: rgba(23, 63, 50, .48);
	box-shadow: 0 8px 28px rgba(13, 37, 29, .2);
	backdrop-filter: blur(10px);
}

.tama-hero-slider-button,
.tama-hero-slider-dot {
	appearance: none;
	border: 0;
	cursor: pointer;
}

.tama-hero-slider-button {
	display: grid;
	width: 34px;
	height: 34px;
	place-items: center;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .65);
	border-radius: 50%;
	background: transparent;
	color: white;
	font-size: 17px;
	line-height: 1;
}

.tama-hero-slider-button:hover,
.tama-hero-slider-button:focus-visible {
	background: white;
	color: var(--moss-dark);
}

.tama-hero-slider-dots {
	display: flex;
	align-items: center;
	gap: 7px;
}

.tama-hero-slider-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .48);
	transition: width 180ms ease, background-color 180ms ease;
}

.tama-hero-slider-dot.is-active {
	width: 24px;
	border-radius: 999px;
	background: white;
}

.tama-hero-slider-button:focus-visible,
.tama-hero-slider-dot:focus-visible {
	outline: 2px solid white;
	outline-offset: 3px;
}

@media (max-width: 782px) {
	.editable-hero-slider,
	.editable-hero-slider > .editable-hero-slide {
		min-height: 560px !important;
	}

	.tama-hero-slider-controls {
		right: 20px;
		bottom: 16px;
		gap: 6px;
		padding: 6px 8px;
	}

	.tama-hero-slider-button {
		width: 30px;
		height: 30px;
	}
}

/* ========================================================================
 * v3.5.1: front-page parity for every top-level purpose page.
 * Purpose pages now render the same .editable-purpose-nav structure as home;
 * only the purpose-specific photograph and copy change between pages.
 * ======================================================================== */
.purpose-shared-top > .purpose-detail-hero {
	box-sizing: border-box;
	height: 650px;
	min-height: 650px;
}

.purpose-shared-top > .purpose-detail-hero .purpose-detail-hero__media,
.purpose-shared-top > .purpose-detail-hero .purpose-detail-hero__media img {
	width: 100%;
	height: 100%;
}

.purpose-shared-top > .purpose-detail-hero .purpose-detail-hero__media img {
	display: block;
	object-fit: cover;
}

.purpose-shared-top > .purpose-category-bar--shared {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

@media (max-width: 782px) {
	.purpose-shared-top > .purpose-detail-hero {
		height: auto;
		min-height: clamp(580px, 145vw, 650px);
	}
}


/* Exact typography selected in the Site Editor's "フォント・px文字サイズ" panel. */
.tama-custom-typography,
.tama-custom-typography :where(p, h1, h2, h3, h4, h5, h6, a, li, blockquote, figcaption, button, summary, td, th, time, span) {
	font-family: var(--tama-custom-font-family, inherit) !important;
	font-size: var(--tama-custom-font-size, inherit) !important;
}

/* SEO/LLMO and editorial components (v2.3). */
.tama-breadcrumbs {
	width: 100%;
	margin: 0 0 28px;
	font-size: 13px;
	line-height: 1.6;
}

.tama-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tama-breadcrumbs li {
	display: inline-flex;
	align-items: center;
	min-width: 0;
}

.tama-breadcrumbs li:not(:last-child)::after {
	content: "›";
	margin-left: 10px;
	color: currentColor;
	opacity: .48;
}

.tama-breadcrumbs a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}

.tama-breadcrumbs [aria-current="page"] {
	display: block;
	overflow: hidden;
	max-width: min(62vw, 520px);
	text-overflow: ellipsis;
	white-space: nowrap;
	opacity: .72;
}

.area-page-hero .tama-breadcrumbs {
	margin-bottom: 32px;
	color: var(--wp--preset--color--white);
}

.area-page-hero .tama-breadcrumbs a {
	color: inherit;
}

.tama-post-meta {
	gap: 8px 18px !important;
	margin-block-start: 10px;
	margin-block-end: 30px;
	color: rgba(32, 39, 32, .7);
}

.tama-post-meta > * {
	margin: 0 !important;
}

.tama-published-date time::before {
	content: "公開：";
}

.tama-modified-date time::before {
	content: "更新：";
}

.tama-author-profile {
	position: relative;
	margin-block-start: 54px;
	border: 2px solid var(--wp--preset--color--persimmon);
	background: var(--wp--preset--color--white);
	box-shadow: 0 12px 34px rgba(23, 63, 50, .06);
}

.tama-author-profile__label {
	position: absolute;
	top: 0;
	left: -2px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	width: max-content;
	max-width: calc(100% - 24px);
	min-height: 30px;
	margin: 0 !important;
	padding: 5px 14px;
	transform: translateY(-100%);
	font-weight: 700;
	line-height: 1.4;
}

.tama-author-profile__label::before {
	content: "●";
	margin-right: 7px;
	font-size: .68em;
}

.tama-author-profile__body,
.tama-author-profile__columns {
	margin: 0 !important;
}

.tama-author-profile__body {
	column-gap: 22px;
}

.tama-author-profile__body .wp-block-media-text__content {
	padding: 0;
}

.tama-author-profile__body img,
.tama-author-profile .wp-block-avatar img {
	width: 96px;
	height: 96px;
	border-radius: 18px;
	object-fit: cover;
}

.tama-author-profile h3,
.tama-author-profile .wp-block-post-author-name {
	margin-block: 0 8px;
	font-weight: 700;
}

.tama-author-profile p,
.tama-author-profile .wp-block-post-author-biography {
	margin-block: 0;
}

/* The purpose menu intentionally contains only icon + title. */
.editable-purpose-nav .purpose-item {
	min-height: 138px;
	gap: 12px;
	align-items: center;
	justify-content: center;
	padding: 20px 14px;
}

.editable-purpose-nav .purpose-item > * {
	margin: 0 !important;
}

.editable-purpose-nav .purpose-symbol {
	margin: 0 auto !important;
}

.editable-purpose-nav .purpose-item h3 {
	line-height: 1.45;
}

.editable-purpose-nav .purpose-item h3 a {
	color: inherit;
}

/* Exact text color selected in the custom typography panel. */
.tama-custom-typography,
.tama-custom-typography :where(p, h1, h2, h3, h4, h5, h6, a, li, blockquote, figcaption, button, summary, td, th, time, span) {
	color: var(--tama-custom-text-color) !important;
}

@media (max-width: 782px) {
	.tama-breadcrumbs {
		margin-bottom: 22px;
		font-size: 12px;
	}

	.tama-breadcrumbs [aria-current="page"] {
		max-width: 52vw;
	}

	.tama-author-profile {
		padding: 22px 18px !important;
	}

	.tama-author-profile__body {
		grid-template-columns: 1fr !important;
		gap: 16px;
	}

	.tama-author-profile__body .wp-block-media-text__media {
		margin-bottom: 14px;
	}

	.tama-author-profile__columns {
		display: grid !important;
		grid-template-columns: 96px minmax(0, 1fr);
		gap: 18px;
	}

	.editable-purpose-nav .purpose-item {
		min-height: 126px;
	}

	.editable-purpose-nav .purpose-item:last-child {
		grid-column: 1 / -1;
		border-right: 0;
	}
}

/* Region guide pages (v2.4). All visual content remains standard blocks. */
.area-guide-page {
	background: var(--paper);
}

.area-page-hero {
	isolation: isolate;
}

.area-page-hero::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(13, 37, 29, .72) 0%, rgba(13, 37, 29, .28) 62%, rgba(13, 37, 29, .08) 100%);
	content: "";
	pointer-events: none;
}

.area-page-hero .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

.area-page-hero-inner {
	display: flex;
	min-height: 600px;
	flex-direction: column;
	justify-content: flex-end;
	padding-block: 72px;
}

.area-page-hero .wp-block-post-title {
	max-width: 900px;
	margin-block: 14px 0;
	text-shadow: 0 3px 30px rgba(0, 0, 0, .28);
}

.area-page-hero .wp-block-post-excerpt {
	max-width: 760px;
	margin-top: 22px;
	font-size: clamp(16px, 1.55vw, 22px);
	line-height: 1.9;
}

.area-page-hero .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.area-page-content {
	overflow: clip;
}

.area-local-nav {
	position: relative;
	z-index: 10;
	gap: 8px 34px !important;
	max-width: min(100% - 40px, 1040px) !important;
	margin-top: -30px !important;
	padding: 18px 28px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: rgba(255, 253, 248, .96);
	box-shadow: 0 18px 44px rgba(23, 63, 50, .12);
	backdrop-filter: blur(14px);
}

.area-local-nav p {
	margin: 0;
}

.area-local-nav a {
	position: relative;
	display: inline-block;
	padding: 6px 2px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .04em;
}

.area-local-nav a::after {
	position: absolute;
	right: 0;
	bottom: 1px;
	left: 0;
	height: 2px;
	background: var(--persimmon);
	content: "";
	transform: scaleX(0);
	transition: transform 180ms ease;
}

.area-local-nav a:hover::after,
.area-local-nav a:focus-visible::after {
	transform: scaleX(1);
}

.area-guide-intro,
.area-highlights-section > *,
.area-stories-section > *,
.area-events-section > *,
.area-guide-note {
	padding-inline: max(24px, calc((100vw - var(--max)) / 2));
}

.area-intro-columns {
	gap: clamp(40px, 7vw, 110px) !important;
}

.area-intro-columns h2,
.area-highlights-section h2,
.area-stories-section h2,
.area-events-section h2,
.area-other-guides h2 {
	font-family: var(--wp--preset--font-family--mincho);
	font-weight: 500;
	line-height: 1.35;
}

.area-intro-columns .wp-block-column:first-child > * {
	max-width: 620px;
}

.area-character-image {
	overflow: hidden;
	border-radius: 28px 28px 120px 28px;
	box-shadow: 0 28px 70px rgba(23, 63, 50, .15);
}

.area-character-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.area-highlights-section > .wp-block-group:first-child {
	margin-bottom: 58px;
}

.area-highlight-row {
	gap: clamp(38px, 7vw, 100px) !important;
	margin-block: 0 !important;
	padding-block: 64px;
	border-top: 1px solid var(--line);
}

.area-highlight-row:last-child {
	border-bottom: 1px solid var(--line);
}

.area-highlight-row .wp-block-image {
	overflow: hidden;
	margin: 0;
	border-radius: 24px;
}

.area-highlight-row .wp-block-image img {
	width: 100%;
	aspect-ratio: 16 / 11;
	object-fit: cover;
	transition: transform 350ms ease;
}

.area-highlight-row:hover .wp-block-image img {
	transform: scale(1.025);
}

.area-highlight-copy {
	padding: clamp(12px, 2vw, 34px);
}

.area-highlight-copy > * {
	margin-block-start: 14px;
}

.area-highlight-copy > :first-child {
	margin-block-start: 0;
}

.area-highlight-copy h3 {
	font-family: var(--wp--preset--font-family--mincho);
	font-weight: 500;
}

.area-related-links {
	margin-top: 28px !important;
	padding: 20px 22px;
	border-left: 3px solid var(--persimmon);
	background: rgba(255, 253, 248, .72);
}

.area-related-links > * {
	margin-block: 0 8px;
}

.area-related-links > :last-child {
	margin-bottom: 0;
}

.area-related-links ul {
	margin: 0;
	padding-left: 1.2em;
}

.area-related-links li + li {
	margin-top: 8px;
}

.area-related-links a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .22em;
}

.area-stories-section .wp-block-query {
	margin-top: 46px;
}

.area-story-card {
	height: 100%;
	padding-bottom: 24px;
	border: 1px solid var(--line);
	border-radius: 20px;
	background: var(--white);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.area-story-card:hover {
	box-shadow: 0 18px 44px rgba(23, 63, 50, .12);
	transform: translateY(-4px);
}

.area-story-card > :not(.wp-block-post-featured-image) {
	padding-inline: 22px;
}

.area-story-card .wp-block-post-featured-image {
	margin: 0 0 20px;
}

.area-story-card .wp-block-post-featured-image img {
	border-radius: 20px 20px 0 0;
}

.area-story-card .wp-block-post-terms {
	color: var(--persimmon);
	font-weight: 800;
}

.area-event-cards {
	gap: 24px !important;
	margin-top: 44px;
}

.area-event-card {
	min-height: 250px;
	padding: clamp(28px, 4vw, 50px);
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 24px;
	background: rgba(255, 255, 255, .08);
}

.area-event-card h3 {
	font-family: var(--wp--preset--font-family--mincho);
	font-weight: 500;
}

.area-event-card a {
	color: var(--white);
	text-decoration: underline;
	text-underline-offset: .25em;
}

.area-guide-note {
	max-width: 920px !important;
}

.area-guide-note {
	color: var(--muted);
}

.area-other-guides {
	padding-inline: max(24px, calc((100vw - var(--max)) / 2));
}

.area-guide-navigation {
	margin-top: 30px;
}

.area-guide-navigation .wp-block-navigation-item__content {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	padding: 0 20px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: var(--white);
	font-size: 13px;
	font-weight: 800;
	transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.area-guide-navigation .wp-block-navigation-item__content:hover,
.area-guide-navigation .wp-block-navigation-item__content:focus-visible {
	background: var(--moss-dark);
	color: var(--white);
	transform: translateY(-2px);
}

.editor-styles-wrapper .area-page-hero-inner {
	min-height: 540px;
}

.editor-styles-wrapper .area-local-nav {
	margin-top: 20px !important;
}

@media (max-width: 900px) {
	.area-page-hero,
	.area-page-hero-inner {
		min-height: 520px !important;
	}

	.area-page-hero-inner {
		padding: 54px 24px;
	}

	.area-highlight-row,
	.area-highlight-row.is-reverse {
		display: flex !important;
		flex-direction: column;
		padding-block: 48px;
	}

	.area-highlight-row.is-reverse .wp-block-column:first-child {
		order: 2;
	}

	.area-highlight-row.is-reverse .wp-block-column:last-child {
		order: 1;
	}

	.area-highlight-row > .wp-block-column {
		width: 100%;
		flex-basis: 100% !important;
	}
}

@media (max-width: 600px) {
	.area-local-nav {
		max-width: calc(100% - 28px) !important;
		justify-content: flex-start !important;
		gap: 4px 18px !important;
		padding: 14px 18px;
		border-radius: 20px;
	}

	.area-local-nav a {
		font-size: 12px;
	}

	.area-guide-intro,
	.area-highlights-section > *,
	.area-stories-section > *,
	.area-events-section > *,
	.area-guide-note,
	.area-other-guides {
		padding-inline: 20px;
	}

	.area-character-image {
		border-radius: 20px 20px 70px 20px;
	}

	.area-event-cards {
		display: grid !important;
		grid-template-columns: 1fr;
	}
}

.area-information-date {
	gap: 0 !important;
	max-width: var(--max) !important;
	padding: 20px max(24px, calc((100vw - var(--max)) / 2)) 50px;
	color: var(--muted);
}

.area-information-date > * {
	margin: 0 !important;
}

.area-archive-header,
.area-archive-list {
	padding-inline: max(24px, calc((100vw - var(--max)) / 2));
}

.area-archive-header .tama-breadcrumbs {
	color: var(--white);
}

.area-archive-header .wp-block-query-title {
	margin-top: 18px;
	font-family: var(--wp--preset--font-family--mincho);
	font-weight: 500;
}

.area-archive-header p:last-child {
	max-width: 760px;
}

.area-archive-card {
	height: 100%;
	padding-bottom: 30px;
}

.area-archive-card .wp-block-post-featured-image {
	margin: 0;
}

.area-archive-card > :not(.wp-block-post-featured-image) {
	padding-inline: 22px;
}

.area-archive-card .wp-block-read-more {
	display: inline-block;
	margin: 18px 22px 0;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--persimmon);
	font-weight: 800;
}

/* v2.5: error-safe automatic FV and clearer region hero. */
.editable-hero-slider .hero-inner {
	width: min(calc(100% - 48px), var(--max));
	max-width: var(--max) !important;
	margin-inline: auto !important;
}

.editable-hero-slider .hero-headline {
	width: 100%;
	max-width: none !important;
	white-space: nowrap;
}

/* The v2.5 FV changes automatically; legacy controls are intentionally hidden. */
.tama-hero-slider-controls {
	display: none !important;
}

.area-page-hero {
	position: relative;
}

.area-page-hero-inner {
	width: min(calc(100% - 48px), var(--max));
	max-width: var(--max) !important;
	min-height: 600px;
	align-items: center;
	justify-content: center;
	padding: 96px 24px 72px;
	margin-inline: auto !important;
	text-align: center;
}

.area-page-hero-inner > :not(.tama-breadcrumbs),
.area-page-hero .wp-block-post-title,
.area-page-hero .wp-block-post-excerpt,
.area-page-hero .wp-block-post-excerpt__excerpt {
	margin-inline: auto !important;
	color: #fff !important;
	opacity: 1 !important;
	text-align: center !important;
	text-shadow: 0 3px 24px rgba(0, 0, 0, .62), 0 1px 4px rgba(0, 0, 0, .82);
}

.area-page-hero .wp-block-post-title {
	width: 100%;
	max-width: 1000px;
}

.area-page-hero .wp-block-post-excerpt {
	width: 100%;
	max-width: 820px;
}

.area-page-hero .tama-breadcrumbs {
	position: absolute;
	top: clamp(24px, 3vw, 42px);
	left: max(24px, calc((100vw - var(--max)) / 2));
	z-index: 5;
	width: auto;
	max-width: calc(100% - 48px);
	margin: 0;
	color: #fff !important;
	opacity: 1 !important;
	text-align: left;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .72);
}

.area-page-hero .tama-breadcrumbs a,
.area-page-hero .tama-breadcrumbs [aria-current="page"] {
	color: #fff !important;
	opacity: 1 !important;
}

.area-page-hero .tama-breadcrumbs li:not(:last-child)::after {
	opacity: .9;
}

@media (max-width: 900px) {
	.editable-hero-slider .hero-headline {
		white-space: normal;
	}

	.area-page-hero-inner {
		min-height: 520px;
		padding: 88px 20px 54px;
	}

	.area-page-hero .tama-breadcrumbs {
		top: 22px;
		left: 20px;
		max-width: calc(100% - 40px);
	}
}

/* v2.6: true crossfade FV, readable area hero and restored purpose navigation. */
.editable-hero-slider > .editable-hero-slide {
	z-index: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--tama-hero-fade-duration, 1500ms) ease-in-out,
		visibility 0s linear var(--tama-hero-fade-duration, 1500ms);
}

.editable-hero-slider:not(.is-ready) > .editable-hero-slide:first-child,
.editable-hero-slider > .editable-hero-slide.is-active {
	z-index: 2;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.editable-hero-slider > .editable-hero-slide.is-leaving {
	z-index: 1;
	opacity: 0;
	visibility: visible;
	pointer-events: none;
	transition-delay: 0s;
}

.editable-hero-slider .editable-hero-slide .wp-block-cover__image-background {
	transform: scale(1);
	transform-origin: center center;
	transition: none;
	will-change: transform;
}

.editable-hero-slider .editable-hero-slide.is-active .wp-block-cover__image-background {
	animation: tama-hero-gentle-zoom var(--tama-hero-duration, 7100ms) linear both;
}

.editable-hero-slider .editable-hero-slide.is-leaving .wp-block-cover__image-background {
	animation: none;
}

@keyframes tama-hero-gentle-zoom {
	from { transform: scale(1); }
	to { transform: scale(1.04); }
}

/* The dark image layer and the text layer are independent. */
.area-page-hero .wp-block-cover__background,
.area-page-hero::after {
	pointer-events: none;
}

.area-page-hero-inner :where(
	p,
	h1,
	h2,
	h3,
	a,
	li,
	.wp-block-post-title,
	.wp-block-post-excerpt,
	.wp-block-post-excerpt__excerpt
) {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	opacity: 1 !important;
	filter: none !important;
}

.area-page-hero .wp-block-post-title,
.area-page-hero .wp-block-post-title a,
.area-page-hero .wp-block-post-excerpt,
.area-page-hero .wp-block-post-excerpt__excerpt {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
}

.area-page-hero .tama-breadcrumbs {
	top: clamp(18px, 2.2vw, 32px);
	right: max(24px, calc((100vw - var(--max)) / 2));
	left: auto;
	justify-content: flex-end;
	text-align: right;
}

.area-page-hero .tama-breadcrumbs ol {
	justify-content: flex-end;
}

/* Purpose navigation: entire head is linked, hover returns to orange, children drop down. */
.editable-purpose-nav {
	position: relative;
	z-index: 30;
	overflow: visible !important;
	background: var(--paper);
}

.editable-purpose-nav .purpose-columns {
	overflow: visible !important;
}

.editable-purpose-nav .purpose-item {
	position: relative;
	min-width: 0;
	min-height: 150px;
	padding: 0;
	border-right: 1px solid var(--line);
	overflow: visible;
}

.editable-purpose-nav .purpose-item:last-child {
	border-right: 0;
}

.editable-purpose-nav .purpose-item:hover,
.editable-purpose-nav .purpose-item:focus-within,
.editable-purpose-nav .purpose-item.is-open {
	z-index: 40;
}

.purpose-item__head {
	position: relative;
	min-height: 150px;
	gap: 5px !important;
	padding: 18px;
	margin: 0 !important;
	transition: background-color 180ms ease, color 180ms ease;
}

.purpose-item__head > * {
	margin-block: 4px !important;
}

.purpose-item__title {
	position: static;
	z-index: 2;
	margin: 0 !important;
	font-size: 20px !important;
}

.purpose-item__title a {
	color: var(--ink);
	text-decoration: none;
}

.purpose-item__title a::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	content: "";
}

.purpose-symbol {
	position: relative;
	z-index: 2;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	margin-inline: auto !important;
	border: 1px solid currentColor;
	border-radius: 50%;
	line-height: 1;
	transition: color 180ms ease, border-color 180ms ease;
}

.purpose-chevron {
	position: absolute;
	right: 13px;
	bottom: 8px;
	z-index: 2;
	margin: 0 !important;
	color: var(--ink);
	font-size: 18px !important;
	line-height: 1;
	transition: transform 180ms ease, color 180ms ease;
}

.purpose-item:hover .purpose-item__head,
.purpose-item:focus-within .purpose-item__head,
.purpose-item.is-open .purpose-item__head {
	background: var(--persimmon);
	color: #fff;
}

.purpose-item:hover .purpose-symbol,
.purpose-item:focus-within .purpose-symbol,
.purpose-item.is-open .purpose-symbol,
.purpose-item:hover .purpose-item__title a,
.purpose-item:focus-within .purpose-item__title a,
.purpose-item.is-open .purpose-item__title a,
.purpose-item:hover .purpose-chevron,
.purpose-item:focus-within .purpose-chevron,
.purpose-item.is-open .purpose-chevron {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

.purpose-item:hover .purpose-chevron,
.purpose-item:focus-within .purpose-chevron,
.purpose-item.is-open .purpose-chevron {
	transform: rotate(180deg);
}

.purpose-subnav {
	position: absolute;
	top: 100%;
	right: 10px;
	left: 10px;
	z-index: 50;
	padding: 7px !important;
	margin: -1px 0 0 !important;
	border-top: 3px solid var(--persimmon);
	background: #fff;
	box-shadow: 0 18px 38px rgba(38, 50, 32, .2);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-8px);
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.purpose-item:hover > .purpose-subnav,
.purpose-item:focus-within > .purpose-subnav,
.purpose-item.is-open > .purpose-subnav {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.purpose-subnav p {
	position: relative;
	z-index: 60;
	margin: 0 !important;
}

.purpose-subnav p + p {
	border-top: 1px solid var(--line);
}

.purpose-subnav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 12px 10px;
	color: var(--ink) !important;
	text-decoration: none;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	text-align: left;
	transition: background-color 140ms ease, color 140ms ease, padding 140ms ease;
}

.purpose-subnav a:hover,
.purpose-subnav a:focus-visible {
	padding-right: 7px;
	padding-left: 13px;
	background: var(--paper-2);
	color: var(--persimmon) !important;
}

.purpose-subnav a > span:last-child {
	font-size: 14px;
}

.purpose-menu-toggle {
	display: none;
}

@media (max-width: 900px) {
	.area-page-hero .tama-breadcrumbs {
		top: 18px;
		right: 20px;
		left: auto;
		max-width: calc(100% - 40px);
	}

	.editable-purpose-nav .purpose-columns {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.editable-purpose-nav .purpose-item {
		border-bottom: 1px solid var(--line);
	}

	.editable-purpose-nav .purpose-item:nth-child(2n) {
		border-right: 0;
	}

	.editable-purpose-nav .purpose-item:last-child {
		grid-column: 1 / -1;
	}

	.purpose-item__head {
		min-height: 135px;
	}

	.purpose-subnav {
		position: static;
		display: none;
		padding: 6px 12px 12px !important;
		margin: 0 !important;
		border-top: 1px solid var(--line);
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
	}

	.purpose-item.is-open > .purpose-subnav,
	.purpose-item:focus-within > .purpose-subnav {
		display: block;
	}

	.purpose-menu-toggle {
		position: absolute;
		right: 8px;
		bottom: 6px;
		z-index: 5;
		display: grid;
		width: 38px;
		height: 38px;
		place-items: center;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: transparent;
		color: currentColor;
		cursor: pointer;
		font-size: 20px;
	}

	.purpose-menu-toggle span {
		transition: transform 180ms ease;
	}

	.purpose-item.is-open .purpose-menu-toggle span {
		transform: rotate(180deg);
	}

	.purpose-chevron {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.editable-hero-slider .editable-hero-slide.is-active .wp-block-cover__image-background {
		animation: none;
		transform: scale(1);
	}
}


/* v2.7: requested layout polish, Japanese dates and language page support. */
/* Region hero: keep the existing vertical position, align breadcrumbs with the site content edge. */
.area-page-hero .tama-breadcrumbs {
	top: clamp(18px, 2.2vw, 32px);
	right: auto !important;
	left: max(24px, calc((100vw - var(--max)) / 2)) !important;
	justify-content: flex-start !important;
	color: #ffffff !important;
	text-align: left !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
}

.area-page-hero .tama-breadcrumbs ol {
	justify-content: flex-start !important;
}

.area-page-hero .tama-breadcrumbs :where(a, span, li),
.area-page-hero-inner > :not(.tama-breadcrumbs),
.area-page-hero-inner :where(p, h1, h2, h3, a, li),
.area-page-hero .wp-block-post-title,
.area-page-hero .wp-block-post-title a,
.area-page-hero .wp-block-post-excerpt,
.area-page-hero .wp-block-post-excerpt__excerpt {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
}

/* All FV slides use the same Mincho face and weight as the first slide. */
.editable-hero-slider .hero-headline {
	font-family: var(--wp--preset--font-family--mincho) !important;
	font-style: normal !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
}

/* Purpose navigation: the orange hover area and the parent link share the full column width. */
.editable-purpose-nav .purpose-item {
	align-items: stretch !important;
}

.editable-purpose-nav .purpose-item__head {
	width: 100%;
	max-width: none;
	align-self: stretch;
}

.editable-purpose-nav .purpose-subnav {
	right: 0;
	left: 0;
}

/* Remove the legacy down-arrow beneath all five purpose labels, including saved templates. */
.editable-purpose-nav .purpose-chevron {
	display: none !important;
}

/* Image + title only cards on the top-page latest-stories section. */
#stories .tama-story-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

#stories .tama-story-card .wp-block-post-featured-image,
#stories .tama-story-card .wp-block-post-title {
	margin: 0;
}

#stories .tama-story-card .wp-block-post-date,
#stories .tama-story-card .wp-block-post-excerpt {
	display: none !important;
}

/* English landing page. */
.english-landing-hero .wp-block-cover__inner-container {
	width: 100%;
}

.english-landing-hero__inner {
	display: flex;
	min-height: 590px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 72px 24px;
	text-align: center;
}

.english-landing-hero__inner h1,
.english-landing-hero__inner p {
	max-width: 920px;
	margin-inline: auto;
	color: #ffffff !important;
	text-shadow: 0 3px 24px rgba(0, 0, 0, .55);
}

.english-area-card {
	overflow: hidden;
	padding-bottom: 24px;
	border: 1px solid var(--line);
	border-radius: 22px;
	background: var(--white);
}

.english-area-card .wp-block-image {
	margin: 0;
}

.english-area-card img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.english-area-card :where(h3, p) {
	padding-inline: 20px;
}

@media (max-width: 900px) {
	.area-page-hero .tama-breadcrumbs {
		top: 18px;
		right: auto !important;
		left: 20px !important;
		max-width: calc(100% - 40px);
	}
}


/* v2.8: reliable hero crossfade/zoom, Tama map background and area hero alignment. */
.editable-hero-slider {
	--tama-hero-fade-duration: 1500ms;
	--tama-hero-duration: 7100ms;
}

.editable-hero-slider > .editable-hero-slide {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	will-change: opacity;
	transition:
		opacity var(--tama-hero-fade-duration, 1500ms) ease-in-out,
		visibility 0s linear var(--tama-hero-fade-duration, 1500ms) !important;
}

.editable-hero-slider:not(.is-ready) > .editable-hero-slide:first-child,
.editable-hero-slider > .editable-hero-slide.is-pre-enter,
.editable-hero-slider > .editable-hero-slide.is-active,
.editable-hero-slider > .editable-hero-slide.is-leaving {
	visibility: visible;
}

.editable-hero-slider > .editable-hero-slide.is-pre-enter {
	z-index: 2;
	opacity: 0;
}

.editable-hero-slider > .editable-hero-slide.is-active {
	z-index: 3;
	opacity: 1;
	pointer-events: auto;
	transition-delay: 0s;
}

.editable-hero-slider > .editable-hero-slide.is-leaving {
	z-index: 2;
	opacity: 0;
	pointer-events: none;
	transition-delay: 0s;
}

.editable-hero-slider .editable-hero-slide .wp-block-cover__image-background {
	transform: scale(1);
	transform-origin: center center;
	will-change: transform;
}

.editable-hero-slider .editable-hero-slide.is-active .wp-block-cover__image-background {
	animation: tama-hero-gentle-zoom var(--tama-hero-duration, 7100ms) ease-out both;
}

.editable-hero-slider .editable-hero-slide.is-pre-enter .wp-block-cover__image-background,
.editable-hero-slider .editable-hero-slide.is-leaving .wp-block-cover__image-background {
	animation: none;
	transform: scale(1);
}

.editable-hero-slider .hero-inner :where(h1, h2, h3, p, a, span),
.editable-hero-slider .hero-area-card :where(h1, h2, h3, p, a, span) {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 1 !important;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .42);
}

.area-guide--with-map {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.area-guide--with-map::before {
	content: "";
	position: absolute;
	inset: 40px 0 40px 0;
	background: url("../images/tokyo-tama-map.svg") no-repeat right 60px top 64px / min(900px, 60vw) auto;
	opacity: .30;
	pointer-events: none;
	z-index: 0;
}

.area-guide--with-map > * {
	position: relative;
	z-index: 1;
}

.area-guide--with-map .section-intro,
.area-guide--with-map .editable-area-cards {
	position: relative;
}

.area-guide--with-map .editable-area-cards {
	padding-top: 10px;
}

.area-page-hero-inner {
	text-align: center;
}

.area-page-breadcrumb-wrap {
	position: absolute;
	top: clamp(18px, 2.2vw, 32px);
	left: max(24px, calc((100vw - var(--max)) / 2));
	z-index: 6;
	width: auto;
	margin: 0 !important;
}

.area-page-breadcrumb-wrap .wp-block-shortcode {
	margin: 0 !important;
}

.area-page-hero .tama-breadcrumbs {
	position: static !important;
	right: auto !important;
	left: auto !important;
	margin: 0 !important;
	justify-content: flex-start !important;
	text-align: left !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .72);
}

.area-page-hero .tama-breadcrumbs ol {
	justify-content: flex-start !important;
}

.area-page-hero .tama-breadcrumbs :where(a, span, li),
.area-page-hero-inner > :not(.area-page-breadcrumb-wrap):not(.tama-breadcrumbs),
.area-page-hero-inner :where(p, h1, h2, h3, a, li),
.area-page-hero .wp-block-post-title,
.area-page-hero .wp-block-post-title a,
.area-page-hero .wp-block-post-excerpt,
.area-page-hero .wp-block-post-excerpt__excerpt {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 1 !important;
	filter: none !important;
}

@media (max-width: 1180px) {
	.area-guide--with-map::before {
		background-position: center top 72px;
		background-size: min(880px, 82vw) auto;
		opacity: .22;
	}
}

@media (max-width: 900px) {
	.area-page-breadcrumb-wrap {
		left: 20px;
		right: 20px;
	}

	.area-guide--with-map::before {
		inset: 28px 0 24px 0;
		background-position: center top 86px;
		background-size: min(640px, 94vw) auto;
		opacity: .18;
	}
}

/* v3.0: database-safe FV motion and unfiltered area-page hero images. */

/*
 * JS mode is added at runtime to every .editable-hero-slider, including an old
 * customized front-page template stored by WordPress. It overrides the former
 * CSS-only mode so the FV cannot become static merely because the saved template
 * lacks a newly introduced class.
 */
.hero-slider-js-mode {
	--tama-hero-fade-duration: 1800ms;
	--tama-hero-display-duration: 8300ms;
	position: relative;
	min-height: 650px;
	overflow: hidden;
	background: var(--moss-dark);
	isolation: isolate;
}

.hero-slider-js-mode > .editable-hero-slide {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	min-height: 650px !important;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	animation: none !important;
	transition:
		opacity var(--tama-hero-fade-duration) cubic-bezier(.45, 0, .2, 1),
		visibility 0s linear var(--tama-hero-fade-duration) !important;
	will-change: opacity;
}

.hero-slider-js-mode:not(.is-ready) > .editable-hero-slide:first-child,
.hero-slider-js-mode > .editable-hero-slide.is-pre-enter,
.hero-slider-js-mode > .editable-hero-slide.is-active,
.hero-slider-js-mode > .editable-hero-slide.is-leaving {
	visibility: visible;
}

.hero-slider-js-mode > .editable-hero-slide.is-pre-enter {
	z-index: 2;
	opacity: 0;
	transition: none !important;
}

.hero-slider-js-mode > .editable-hero-slide.is-active {
	z-index: 3;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s !important;
}

.hero-slider-js-mode > .editable-hero-slide.is-active.is-leaving {
	z-index: 2;
	opacity: 0;
	pointer-events: none;
	transition-delay: 0s !important;
}

.hero-slider-js-mode > .editable-hero-slide .wp-block-cover__image-background {
	transform: scale(1);
	transform-origin: center center;
	animation: none !important;
	backface-visibility: hidden;
	will-change: transform;
}

.hero-slider-js-mode > .editable-hero-slide.is-active .wp-block-cover__image-background {
	animation: tama-v3-hero-gentle-zoom var(--tama-hero-display-duration) cubic-bezier(.2, .55, .25, 1) both !important;
}

@keyframes tama-v3-hero-gentle-zoom {
	from { transform: scale(1); }
	to { transform: scale(1.065); }
}

/* The theme's “white” swatch is now real #FFFFFF, not warm off-white. */
.area-page-hero {
	--wp--preset--color--white: #ffffff;
	position: relative;
	isolation: isolate;
}

.area-page-hero-inner {
	position: relative;
}

/* Show the featured image in its source colors: no Cover dim layer or extra tint. */
.area-page-hero .wp-block-cover__image-background {
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
}

.area-page-hero .wp-block-cover__background {
	background: transparent !important;
	opacity: 0 !important;
	mix-blend-mode: normal !important;
}

.area-page-hero::after {
	display: none !important;
	background: none !important;
	content: none !important;
}

/* Keep every foreground layer fully opaque before forcing its text color. */
.area-page-hero .wp-block-cover__inner-container,
.area-page-hero-inner,
.area-page-breadcrumb-wrap,
.area-page-hero .wp-block-shortcode,
.area-page-hero .tama-breadcrumbs {
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
}

.area-page-hero :where(
	.area-page-hero-inner,
	.area-page-breadcrumb-wrap,
	.wp-block-shortcode,
	.tama-breadcrumbs,
	.tama-breadcrumbs ol,
	.tama-breadcrumbs li,
	.tama-breadcrumbs a,
	.tama-breadcrumbs span,
	.wp-block-post-title,
	.wp-block-post-title a,
	.wp-block-post-excerpt,
	.wp-block-post-excerpt__excerpt,
	.tama-area-hero-force-white,
	p,
	h1,
	h2,
	h3
) {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 1 !important;
	filter: none !important;
	mix-blend-mode: normal !important;
}

.area-page-hero .wp-block-post-title,
.area-page-hero .wp-block-post-excerpt,
.area-page-hero .wp-block-post-excerpt__excerpt,
.area-page-hero-inner > p {
	text-shadow:
		0 2px 3px rgba(0, 0, 0, .92),
		0 4px 18px rgba(0, 0, 0, .72) !important;
}

.area-page-hero .wp-block-post-title {
	font-weight: 600;
}

/*
 * .area-page-hero-inner already shares the same max width and centered left edge
 * as the header. Positioning the breadcrumb at left:0 avoids adding that inset a
 * second time—the cause of the breadcrumb appearing too far to the right.
 */
.area-page-breadcrumb-wrap,
.area-page-hero-inner > .wp-block-shortcode,
.area-page-hero-inner > .tama-breadcrumbs {
	position: absolute !important;
	top: clamp(18px, 2.2vw, 32px) !important;
	right: auto !important;
	left: 0 !important;
	z-index: 6;
	width: max-content !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.area-page-breadcrumb-wrap > .wp-block-shortcode {
	position: static !important;
	width: max-content !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.area-page-hero .tama-breadcrumbs {
	position: static !important;
	width: max-content !important;
	max-width: 100% !important;
	margin: 0 !important;
	overflow-x: auto;
	overflow-y: hidden;
	text-align: left !important;
	white-space: nowrap;
	scrollbar-width: none;
	text-shadow: 0 2px 4px rgba(0, 0, 0, .95), 0 3px 12px rgba(0, 0, 0, .72) !important;
}

.area-page-hero .tama-breadcrumbs::-webkit-scrollbar {
	display: none;
}

.area-page-hero .tama-breadcrumbs ol {
	display: flex;
	width: max-content;
	max-width: none;
	flex-wrap: nowrap !important;
	justify-content: flex-start !important;
	gap: 6px 10px;
}

.area-page-hero .tama-breadcrumbs li,
.area-page-hero .tama-breadcrumbs a,
.area-page-hero .tama-breadcrumbs span,
.area-page-hero .tama-breadcrumbs [aria-current="page"] {
	display: inline-flex;
	max-width: none !important;
	overflow: visible !important;
	flex: 0 0 auto;
	text-overflow: clip !important;
	white-space: nowrap !important;
}

@media (max-width: 782px) {
	.hero-slider-js-mode,
	.hero-slider-js-mode > .editable-hero-slide {
		min-height: 560px !important;
	}

	.area-page-hero-inner {
		width: calc(100% - 36px);
	}

	.area-page-breadcrumb-wrap,
	.area-page-hero-inner > .wp-block-shortcode,
	.area-page-hero-inner > .tama-breadcrumbs {
		top: 18px !important;
		left: 0 !important;
		max-width: 100% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero-slider-js-mode > .editable-hero-slide {
		transition-duration: 300ms !important;
	}

	.hero-slider-js-mode > .editable-hero-slide.is-active .wp-block-cover__image-background {
		animation: none !important;
		transform: scale(1);
	}
}


/* ========================================================================
 * v3.1 Editorial hierarchy and Suginami-inspired lower-level layouts
 * All visible sections remain standard WordPress blocks / Query Loops.
 * ======================================================================== */

.purpose-guide-layout,
.editorial-landing,
.editorial-taxonomy-page,
.editorial-story-page,
.area-guide-page-v31 {
	background: var(--paper);
}

.editorial-eyebrow {
	margin-bottom: 10px !important;
	font-weight: 800;
	letter-spacing: .2em;
	line-height: 1.4;
	text-transform: uppercase;
}

.editorial-breadcrumb-row,
.editorial-taxonomy-hero .tama-breadcrumbs,
.editorial-story-header .tama-breadcrumbs {
	margin-bottom: clamp(28px, 4vw, 56px);
}

.editorial-landing-hero {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--line);
	background:
		radial-gradient(circle at 88% 20%, rgba(219, 116, 75, .16), transparent 28%),
		linear-gradient(130deg, #f8f3e9 0%, #f2eadb 100%);
}

.editorial-landing-hero::before {
	position: absolute;
	top: -80px;
	right: -40px;
	width: 260px;
	height: 260px;
	border: 1px solid rgba(49, 91, 73, .2);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.editorial-landing-hero__columns {
	gap: clamp(36px, 6vw, 96px) !important;
}

.editorial-purpose-symbol {
	display: grid;
	width: 66px;
	height: 66px;
	place-items: center;
	margin: 0 0 22px !important;
	border: 1px solid currentColor;
	border-radius: 50%;
	color: var(--moss-dark);
	line-height: 1;
}

.editorial-landing-title {
	max-width: 9em;
	margin-top: 0 !important;
	margin-bottom: 22px !important;
	letter-spacing: .04em;
}

.editorial-landing-lead,
.editorial-taxonomy-hero .wp-block-term-description,
.editorial-story-lead {
	max-width: 42em;
	color: #3f4942;
	line-height: 2;
}

.editorial-landing-hero__image {
	position: relative;
	margin: 0 !important;
}

.editorial-landing-hero__image::before {
	position: absolute;
	inset: 20px -18px -18px 20px;
	z-index: -1;
	border: 1px solid rgba(49, 91, 73, .38);
	content: "";
}

.editorial-landing-hero__image img {
	width: 100%;
	min-height: 420px;
	border-radius: 0;
	object-fit: cover;
}

.editorial-filter-section {
	text-align: center;
}

.editorial-filter-buttons,
.area-municipality-buttons {
	justify-content: center;
	gap: 12px !important;
	margin-top: 28px;
}

.editorial-filter-button .wp-block-button__link,
.area-municipality-button .wp-block-button__link,
.area-purpose-button .wp-block-button__link {
	min-width: 150px;
	padding: 12px 22px;
	border-color: var(--moss-dark);
	background: transparent;
	color: var(--moss-dark);
}

.editorial-filter-button .wp-block-button__link:hover,
.editorial-filter-button .wp-block-button__link:focus-visible,
.area-municipality-button .wp-block-button__link:hover,
.area-municipality-button .wp-block-button__link:focus-visible,
.area-purpose-button .wp-block-button__link:hover,
.area-purpose-button .wp-block-button__link:focus-visible {
	background: var(--moss-dark);
	color: var(--white);
}

.editorial-section-heading {
	margin-bottom: 34px;
}

.editorial-feature-query .wp-block-post-template {
	margin: 0;
	padding: 0;
}

.editorial-feature-card {
	gap: 0 !important;
	overflow: hidden;
	margin: 0 !important;
	border: 1px solid rgba(32, 39, 32, .14);
	background: var(--white);
	box-shadow: 0 24px 70px rgba(32, 39, 32, .08);
}

.editorial-feature-card > .wp-block-column:last-child {
	padding: clamp(30px, 5vw, 72px);
}

.editorial-feature-card .wp-block-post-featured-image {
	height: 100%;
	margin: 0;
}

.editorial-feature-card .wp-block-post-featured-image a,
.editorial-feature-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	min-height: 440px;
	object-fit: cover;
}

.editorial-feature-card .wp-block-post-title {
	margin: 14px 0 18px;
}

.editorial-feature-card .wp-block-read-more {
	display: inline-flex;
	margin-top: 18px;
	padding-bottom: 5px;
	border-bottom: 1px solid currentColor;
	font-weight: 700;
}

.editorial-story-query .wp-block-post-template {
	gap: clamp(24px, 3vw, 42px) !important;
}

.editorial-story-card {
	overflow: hidden;
	margin: 0 !important;
	border: 1px solid rgba(32, 39, 32, .13);
	background: var(--white);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.editorial-story-card:hover {
	box-shadow: 0 18px 50px rgba(32, 39, 32, .1);
	transform: translateY(-4px);
}

.editorial-story-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.editorial-story-card .wp-block-post-featured-image img {
	border-radius: 0 !important;
	transition: transform 500ms ease;
}

.editorial-story-card:hover .wp-block-post-featured-image img {
	transform: scale(1.035);
}

.editorial-story-card__body {
	padding: 22px 24px 28px;
}

.editorial-story-card__body > * {
	margin-block-start: 10px;
	margin-block-end: 10px;
}

.editorial-story-card .wp-block-post-date,
.editorial-story-card .wp-block-post-excerpt {
	color: var(--muted);
}

.editorial-area-link-grid {
	gap: 0 !important;
	margin-top: 34px;
	border-top: 1px solid rgba(255, 255, 255, .24);
	border-left: 1px solid rgba(255, 255, 255, .24);
}

.editorial-area-link {
	min-height: 210px;
	padding: 30px !important;
	border-right: 1px solid rgba(255, 255, 255, .24);
	border-bottom: 1px solid rgba(255, 255, 255, .24);
	background: rgba(255, 255, 255, .02);
	transition: background-color 180ms ease;
}

.editorial-area-link:hover,
.editorial-area-link:focus-within {
	background: rgba(255, 255, 255, .09);
}

.editorial-area-link h3 a {
	color: var(--white);
}

.editorial-area-link p:last-child {
	color: rgba(255, 255, 255, .74);
}

/* Taxonomy archive pages. */
.editorial-taxonomy-hero {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--line);
	background:
		linear-gradient(90deg, rgba(231, 201, 109, .12), transparent 45%),
		var(--paper);
}

.editorial-taxonomy-hero::after {
	position: absolute;
	right: 4vw;
	bottom: -110px;
	width: 300px;
	height: 300px;
	border: 1px solid rgba(49, 91, 73, .18);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.editorial-taxonomy-hero .wp-block-query-title {
	max-width: 12em;
	margin-top: 8px;
	margin-bottom: 20px;
}

.editorial-term-children {
	margin-top: 32px;
}

.editorial-term-children ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.editorial-term-children a {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	padding: 11px 18px;
	border: 1px solid var(--moss-dark);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
}

.editorial-term-children a:hover,
.editorial-term-children a:focus-visible {
	background: var(--moss-dark);
	color: var(--white);
}

.editorial-story-query .wp-block-query-pagination {
	gap: 8px;
	margin-top: 54px;
}

.editorial-story-query .wp-block-query-pagination a,
.editorial-story-query .wp-block-query-pagination .page-numbers {
	display: inline-grid;
	min-width: 42px;
	height: 42px;
	place-items: center;
	border: 1px solid var(--line);
	border-radius: 50%;
}

/* Area guide pages. */
.area-guide-page-v31 .area-page-hero-v31 {
	min-height: 620px !important;
}

.area-guide-page-v31 .area-page-hero-v31 .wp-block-cover__image-background {
	filter: none !important;
	opacity: 1 !important;
	mix-blend-mode: normal !important;
}

.area-guide-page-v31 .area-page-hero-v31 .wp-block-cover__background {
	opacity: .22 !important;
}

.area-guide-page-v31 .area-page-hero-inner {
	display: flex;
	min-height: 620px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.area-guide-page-v31 .area-page-breadcrumb-wrap {
	position: absolute !important;
	top: 34px !important;
	left: 0 !important;
	width: 100%;
	text-align: left;
}

.area-guide-page-v31 .area-page-hero .wp-block-post-title {
	margin: 16px 0 20px !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-size: clamp(54px, 7vw, 102px) !important;
	font-weight: 500;
	letter-spacing: .08em;
	line-height: 1.2;
	text-shadow: 0 4px 24px rgba(0, 0, 0, .7);
}

.area-guide-page-v31 .area-page-hero .wp-block-post-excerpt,
.area-guide-page-v31 .area-page-hero .wp-block-post-excerpt__excerpt,
.area-guide-page-v31 .area-page-hero .editorial-eyebrow {
	max-width: 760px;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	opacity: 1 !important;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .78);
}

.area-editorial-intro__columns {
	gap: clamp(36px, 6vw, 88px) !important;
}

.area-editorial-intro .wp-block-image,
.area-highlight-card .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.area-editorial-intro .wp-block-image img {
	min-height: 460px;
	object-fit: cover;
}

.area-highlight-columns {
	gap: 28px !important;
	margin-top: 38px;
}

.area-highlight-card {
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
}

.area-highlight-card .wp-block-image img {
	transition: transform 500ms ease;
}

.area-highlight-card:hover .wp-block-image img {
	transform: scale(1.03);
}

.area-highlight-card h3 {
	margin-top: 22px;
}

.area-purpose-section {
	text-align: center;
}

.area-purpose-section .wp-block-buttons {
	justify-content: center;
	gap: 12px;
	margin-top: 26px;
}

/* Single article. */
.editorial-story-header {
	border-bottom: 1px solid var(--line);
	background:
		linear-gradient(120deg, rgba(168, 191, 170, .14), transparent 58%),
		var(--paper);
}

.editorial-story-header .wp-block-post-title {
	max-width: 15em;
	margin: 12px 0 24px;
	font-size: clamp(40px, 5.6vw, 78px) !important;
	line-height: 1.32;
}

.editorial-story-kicker a {
	font-weight: 800;
	letter-spacing: .12em;
}

.editorial-story-meta {
	gap: 18px !important;
	margin-top: 28px;
	color: var(--muted);
}

.editorial-story-visual {
	margin-top: 0 !important;
}

.editorial-story-visual .wp-block-post-featured-image {
	margin: 0;
}

.editorial-story-visual img {
	width: 100%;
	max-height: 760px;
	object-fit: cover;
}

.editorial-story-content-wrap .wp-block-post-content > :where(h2) {
	margin-top: 2.4em;
	padding-top: .7em;
	border-top: 1px solid var(--line);
}

.editorial-story-content-wrap .wp-block-post-content > :where(h3) {
	margin-top: 2em;
}

.editorial-story-taxonomies {
	gap: 14px 24px !important;
}

.editorial-author-card {
	border: 1px solid var(--line);
	background: var(--white);
}

/* Editor parity: keep the seeded page sections easy to select and rearrange. */
.editor-styles-wrapper .editorial-landing,
.editor-styles-wrapper .area-editorial-intro,
.editor-styles-wrapper .editorial-feature-section,
.editor-styles-wrapper .editorial-latest-section,
.editor-styles-wrapper .editorial-area-section {
	outline: 1px dashed rgba(49, 91, 73, .24);
	outline-offset: -1px;
}

.editor-styles-wrapper .editorial-landing-hero::before,
.editor-styles-wrapper .editorial-taxonomy-hero::after {
	pointer-events: none;
}

@media (max-width: 960px) {
	.editorial-landing-hero__columns,
	.editorial-feature-card,
	.area-editorial-intro__columns {
		flex-direction: column !important;
	}

	.editorial-landing-hero__columns > .wp-block-column,
	.editorial-feature-card > .wp-block-column,
	.area-editorial-intro__columns > .wp-block-column {
		flex-basis: 100% !important;
	}

	.editorial-landing-hero__image img,
	.editorial-feature-card .wp-block-post-featured-image a,
	.editorial-feature-card .wp-block-post-featured-image img,
	.area-editorial-intro .wp-block-image img {
		min-height: 340px;
	}

	.editorial-story-query .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 620px) {
	.editorial-landing-hero,
	.editorial-taxonomy-hero,
	.editorial-story-header {
		padding-top: 32px !important;
		padding-bottom: 48px !important;
	}

	.editorial-landing-title,
	.editorial-taxonomy-hero .wp-block-query-title,
	.editorial-story-header .wp-block-post-title {
		font-size: 42px !important;
	}

	.editorial-landing-hero__image img,
	.editorial-feature-card .wp-block-post-featured-image a,
	.editorial-feature-card .wp-block-post-featured-image img,
	.area-editorial-intro .wp-block-image img {
		min-height: 260px;
	}

	.editorial-story-query .wp-block-post-template {
		grid-template-columns: 1fr !important;
	}

	.editorial-filter-button,
	.editorial-filter-button .wp-block-button__link,
	.area-municipality-button,
	.area-municipality-button .wp-block-button__link,
	.area-purpose-button,
	.area-purpose-button .wp-block-button__link {
		width: 100%;
	}

	.area-guide-page-v31 .area-page-hero-v31,
	.area-guide-page-v31 .area-page-hero-inner {
		min-height: 500px !important;
	}

	.area-guide-page-v31 .area-page-hero .wp-block-post-title {
		font-size: 48px !important;
	}

	.area-guide-page-v31 .area-page-breadcrumb-wrap {
		top: 18px !important;
	}
}

.editorial-taxonomy-hero--dark {
	background: var(--moss-dark);
}

.editorial-taxonomy-hero--dark::after {
	border-color: rgba(255, 255, 255, .18);
}

.editorial-taxonomy-hero--dark .tama-breadcrumbs,
.editorial-taxonomy-hero--dark .tama-breadcrumbs a,
.editorial-taxonomy-hero--dark .tama-breadcrumbs span,
.editorial-taxonomy-hero--dark .tama-breadcrumbs li {
	color: var(--white);
}

.editorial-area-archive-query .wp-block-post-template {
	gap: clamp(28px, 4vw, 54px) !important;
}

.editorial-area-archive-card {
	overflow: hidden;
	border: 1px solid rgba(32, 39, 32, .13);
	background: var(--white);
}

.editorial-area-archive-card .wp-block-post-featured-image {
	margin: 0;
}

.editorial-area-archive-card .wp-block-post-featured-image img {
	transition: transform 500ms ease;
}

.editorial-area-archive-card:hover .wp-block-post-featured-image img {
	transform: scale(1.035);
}

.editorial-area-archive-card__body {
	padding: clamp(24px, 4vw, 44px);
}

.editorial-area-archive-card__body .wp-block-read-more {
	display: inline-flex;
	margin-top: 14px;
	padding-bottom: 4px;
	border-bottom: 1px solid currentColor;
	font-weight: 700;
}

@media (max-width: 700px) {
	.editorial-area-archive-query .wp-block-post-template {
		grid-template-columns: 1fr !important;
	}
}

/* ========================================================================
 * v3.2 Area guide repair
 *
 * v3.1 reused .area-editorial-intro, a legacy class that is intentionally a
 * two-column grid with a 120px first track. The new block-editor content was
 * therefore squeezed into that 120px track and every Japanese character
 * wrapped vertically. v3.2 uses isolated class names and establishes a
 * horizontal, full-width layout boundary for all five area guides.
 * ======================================================================== */

.area-guide-page-v32,
.area-guide-page-v32 .area-page-content-v32,
.area-guide-page-v32 .wp-block-post-content,
.area-guide-page-v32 .wp-block-post-content > *,
.tama-v32-area-overview,
.tama-v32-area-municipalities,
.tama-v32-area-highlights,
.tama-v32-area-stories,
.tama-v32-area-purpose {
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
}

.area-guide-page-v32 {
	width: 100%;
	max-width: none;
	overflow-x: clip;
	background: var(--paper);
}

.area-guide-page-v32 .area-page-content-v32,
.area-guide-page-v32 .wp-block-post-content {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.area-guide-page-v32 .area-page-hero-v32,
.area-guide-page-v32 .area-page-hero-inner {
	min-height: 620px !important;
}

.area-guide-page-v32 .area-page-hero-inner {
	position: relative;
	box-sizing: border-box;
	width: min(calc(100% - 48px), var(--wp--style--global--wide-size, 1320px));
	max-width: var(--wp--style--global--wide-size, 1320px) !important;
	padding-inline: 0;
	margin-inline: auto !important;
}

.area-guide-page-v32 .area-page-breadcrumb-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

/* Editable overview section. This deliberately overrides every legacy grid
 * property so a saved v3.1 page is also safe while its migration runs. */
.tama-v32-area-overview {
	display: block !important;
	box-sizing: border-box;
	width: min(calc(100% - 48px), var(--wp--style--global--wide-size, 1320px)) !important;
	max-width: var(--wp--style--global--wide-size, 1320px) !important;
	padding: clamp(72px, 8vw, 120px) 0 !important;
	margin-inline: auto !important;
}

.tama-v32-area-overview__columns {
	display: flex !important;
	width: 100% !important;
	max-width: none !important;
	grid-template-columns: none !important;
	align-items: center;
	gap: clamp(36px, 6vw, 88px) !important;
	margin: 0 !important;
}

.tama-v32-area-overview__columns > .wp-block-column {
	min-width: 0;
}

.tama-v32-area-overview :where(h1, h2, h3, p, a, span, strong, em),
.tama-v32-area-municipalities :where(h1, h2, h3, p, a, span, strong, em),
.tama-v32-area-highlights :where(h1, h2, h3, p, a, span, strong, em),
.tama-v32-area-stories :where(h1, h2, h3, p, a, span, strong, em),
.tama-v32-area-purpose :where(h1, h2, h3, p, a, span, strong, em) {
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
	word-break: normal;
	overflow-wrap: anywhere;
}

.tama-v32-area-overview .wp-block-image,
.tama-v32-area-highlight-card .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.tama-v32-area-overview .wp-block-image img {
	display: block;
	width: 100%;
	min-height: 460px;
	object-fit: cover;
}

.tama-v32-area-municipalities,
.tama-v32-area-stories {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
}

.tama-v32-area-highlights {
	box-sizing: border-box;
	width: min(calc(100% - 48px), var(--wp--style--global--wide-size, 1320px)) !important;
	max-width: var(--wp--style--global--wide-size, 1320px) !important;
	margin-inline: auto !important;
}

.tama-v32-area-purpose {
	box-sizing: border-box;
}

.tama-v32-area-municipalities > .wp-block-group,
.tama-v32-area-stories > .wp-block-group {
	box-sizing: border-box;
	width: min(calc(100% - 48px), var(--wp--style--global--wide-size, 1320px));
	max-width: var(--wp--style--global--wide-size, 1320px) !important;
	margin-inline: auto !important;
}

.tama-v32-area-highlight-grid {
	display: flex !important;
	width: 100%;
	align-items: stretch;
	gap: 28px !important;
	margin-top: 38px;
}

.tama-v32-area-highlight-grid > .wp-block-column {
	min-width: 0;
}

.tama-v32-area-highlight-card {
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
}

.tama-v32-area-highlight-card .wp-block-image img {
	display: block;
	width: 100%;
	transition: transform 500ms ease;
}

.tama-v32-area-highlight-card:hover .wp-block-image img {
	transform: scale(1.03);
}

.tama-v32-area-highlight-card h3 {
	margin-top: 22px;
}

.tama-v32-area-purpose {
	width: min(calc(100% - 48px), var(--wp--style--global--wide-size, 1320px));
	max-width: var(--wp--style--global--wide-size, 1320px) !important;
	margin-inline: auto !important;
	text-align: center;
}

.tama-v32-area-purpose .wp-block-buttons {
	justify-content: center;
	gap: 12px;
	margin-top: 26px;
}

/* The same guard is applied in the editor so the front end and editor do not
 * diverge and every section remains selectable as ordinary core blocks. */
.editor-styles-wrapper .tama-v32-area-overview,
.editor-styles-wrapper .tama-v32-area-municipalities,
.editor-styles-wrapper .tama-v32-area-highlights,
.editor-styles-wrapper .tama-v32-area-stories,
.editor-styles-wrapper .tama-v32-area-purpose {
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
}

@media (max-width: 960px) {
	.tama-v32-area-overview__columns,
	.tama-v32-area-highlight-grid {
		flex-direction: column !important;
	}

	.tama-v32-area-overview__columns > .wp-block-column,
	.tama-v32-area-highlight-grid > .wp-block-column {
		flex-basis: 100% !important;
		width: 100%;
	}

	.tama-v32-area-overview .wp-block-image img {
		min-height: 340px;
	}
}

@media (max-width: 620px) {
	.area-guide-page-v32 .area-page-hero-v32,
	.area-guide-page-v32 .area-page-hero-inner {
		min-height: 500px !important;
	}

	.area-guide-page-v32 .area-page-hero-inner,
	.tama-v32-area-overview,
	.tama-v32-area-municipalities > .wp-block-group,
	.tama-v32-area-highlights,
	.tama-v32-area-stories > .wp-block-group,
	.tama-v32-area-purpose {
		width: calc(100% - 36px) !important;
	}

	.tama-v32-area-overview {
		padding-block: 64px !important;
	}

	.tama-v32-area-overview .wp-block-image img {
		min-height: 260px;
	}
}


/* ========================================================================
 * v3.3 Purpose-page repair, lower-level editorial polish and FV horizontal pan
 * ======================================================================== */

/* MACHIE-like slow left-to-right movement. Opacity transitions remain handled
 * by the existing crossfade rules above. Do not mark the base transform as
 * !important: an !important transform outranks keyframe values and freezes the
 * image at its starting position. Extra scale keeps translated image edges
 * outside the viewport at every breakpoint. */
.hero-slider-js-mode > .editable-hero-slide .wp-block-cover__image-background {
	transform: translate3d(-5%, 0, 0) scale(1.16);
	transform-origin: center center;
	backface-visibility: hidden;
	will-change: transform;
}

.hero-slider-js-mode > .editable-hero-slide.is-pre-enter .wp-block-cover__image-background {
	animation: none !important;
	transform: translate3d(-5%, 0, 0) scale(1.16);
}

.hero-slider-js-mode > .editable-hero-slide.is-active .wp-block-cover__image-background {
	animation: tama-v331-hero-pan-right var(--tama-hero-display-duration, 8300ms) linear both !important;
}

@keyframes tama-v331-hero-pan-right {
	from { transform: translate3d(-5%, 0, 0) scale(1.16); }
	to { transform: translate3d(5%, 0, 0) scale(1.16); }
}

/* A first-paint fallback keeps the FV moving even before JavaScript has added
 * its runtime class. Once JS starts, the normal crossfade slider takes over. */
.editable-hero-slider:not(.hero-slider-js-mode) > .editable-hero-slide:first-child .wp-block-cover__image-background {
	animation: tama-v331-hero-pan-right 8300ms linear both;
}

/* Parent purpose landing pages: calm editorial spacing with a large title,
 * prominent visual and clear theme/article hierarchy. */
.editorial-purpose-landing .editorial-landing-hero {
	padding-top: clamp(34px, 5vw, 74px) !important;
	padding-bottom: clamp(64px, 8vw, 118px) !important;
}

.editorial-purpose-landing .editorial-breadcrumb-row {
	margin-bottom: clamp(34px, 5vw, 74px);
}

.editorial-purpose-landing .editorial-landing-title {
	font-size: clamp(56px, 8vw, 116px) !important;
	font-weight: 500;
	line-height: 1.08;
}

.editorial-purpose-landing .editorial-landing-lead {
	font-size: clamp(16px, 1.6vw, 21px) !important;
}

.editorial-purpose-landing .editorial-landing-hero__image {
	overflow: hidden;
	box-shadow: 0 28px 80px rgba(32, 39, 32, .13);
}

.editorial-purpose-landing .editorial-landing-hero__image img {
	min-height: clamp(380px, 48vw, 610px);
	transition: transform 900ms cubic-bezier(.2, .6, .2, 1);
}

.editorial-purpose-landing .editorial-landing-hero__image:hover img {
	transform: scale(1.025);
}

.editorial-purpose-landing .editorial-filter-section {
	border-bottom: 1px solid var(--line);
}

/* Child purpose archives use the same visual language as the parent landing. */
.editorial-purpose-taxonomy-hero {
	background:
		radial-gradient(circle at 88% 18%, rgba(219, 116, 75, .18), transparent 27%),
		linear-gradient(132deg, #f8f3e9 0%, #efe5d5 100%);
}

.editorial-purpose-taxonomy-hero__inner {
	position: relative;
	z-index: 1;
}

.editorial-purpose-taxonomy .editorial-taxonomy-hero .wp-block-query-title {
	max-width: 11em;
	font-size: clamp(56px, 8vw, 110px) !important;
	font-weight: 500;
	line-height: 1.1;
}

.editorial-purpose-taxonomy .editorial-taxonomy-hero .wp-block-term-description {
	max-width: 760px;
	font-size: clamp(16px, 1.5vw, 20px) !important;
}

.editorial-term-children a.is-current {
	background: var(--moss-dark);
	color: var(--white);
}

.editorial-purpose-story-query .wp-block-post-template {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.editorial-purpose-story-query .wp-block-post-template > li:first-child {
	grid-column: span 2;
}

.editorial-purpose-story-query .wp-block-post-template > li:first-child .editorial-story-card {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
	height: 100%;
}

.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image,
.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image a,
.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image img {
	height: 100%;
	min-height: 430px;
}

.editorial-purpose-story-query .wp-block-post-template > li:first-child .editorial-story-card__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(30px, 4vw, 58px);
}

.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-title {
	font-size: clamp(25px, 2.5vw, 39px) !important;
	line-height: 1.45;
}

.editorial-story-card .wp-block-read-more {
	display: inline-flex;
	width: fit-content;
	margin-top: auto;
	padding-top: 12px;
	padding-bottom: 4px;
	border-bottom: 1px solid currentColor;
	font-weight: 700;
}

.editorial-empty-state {
	padding: clamp(34px, 5vw, 64px);
	border: 1px solid var(--line);
	background: var(--white);
	text-align: center;
}

@media (max-width: 960px) {
	.editorial-purpose-story-query .wp-block-post-template > li:first-child {
		grid-column: 1 / -1;
	}

	.editorial-purpose-story-query .wp-block-post-template > li:first-child .editorial-story-card {
		grid-template-columns: 1fr;
	}

	.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image,
	.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image a,
	.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image img {
		min-height: 340px;
	}
}

@media (max-width: 620px) {
	.editorial-purpose-landing .editorial-landing-title,
	.editorial-purpose-taxonomy .editorial-taxonomy-hero .wp-block-query-title {
		font-size: 48px !important;
	}

	.editorial-purpose-story-query .wp-block-post-template {
		grid-template-columns: 1fr !important;
	}

	.editorial-purpose-story-query .wp-block-post-template > li:first-child {
		grid-column: auto;
	}

	.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image,
	.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image a,
	.editorial-purpose-story-query .wp-block-post-template > li:first-child .wp-block-post-featured-image img {
		min-height: 260px;
	}
}



/* ========================================================================
 * v3.3.2 FV motion engine
 * JavaScript Web Animations now owns the image transform. This deliberately
 * neutralizes every older CSS animation so duplicate theme rules cannot freeze
 * or replace the horizontal movement. The first slide retains a CSS-only
 * fallback while JavaScript is loading.
 * ======================================================================== */
.hero-slider-js-mode > .editable-hero-slide .wp-block-cover__image-background,
.hero-slider-js-mode > .editable-hero-slide.is-active .wp-block-cover__image-background,
.hero-slider-js-mode > .editable-hero-slide.is-leaving .wp-block-cover__image-background,
.hero-slider-js-mode > .editable-hero-slide.is-pre-enter .wp-block-cover__image-background {
	animation: none !important;
	transition: none !important;
	transform-origin: center center;
	backface-visibility: hidden;
	will-change: transform;
}

/* Cover blocks saved by some WordPress versions use a CSS background instead
 * of an image element. The JS engine adds this class and animates the
 * background position as a fallback. */
.hero-slider-js-mode > .editable-hero-slide.tama-pan-background {
	background-repeat: no-repeat !important;
	background-size: 118% auto !important;
	will-change: background-position;
}

/* Only used during the tiny interval before the versioned JavaScript loads. */
.editable-hero-slider:not(.hero-slider-js-mode) > .editable-hero-slide:first-child .wp-block-cover__image-background {
	animation: tama-v332-first-paint-pan 6500ms linear both !important;
}

@keyframes tama-v332-first-paint-pan {
	from { transform: translate3d(-6%, 0, 0) scale(1.18); }
	to { transform: translate3d(6%, 0, 0) scale(1.18); }
}

/* Keep the explicitly requested FV motion and 1.4s crossfade consistent even
 * on systems that globally shorten CSS transitions. Other site animations may
 * continue to honor the visitor's reduced-motion preference. */
@media (prefers-reduced-motion: reduce) {
	body .hero-slider-js-mode > .editable-hero-slide {
		transition:
			opacity var(--tama-hero-fade-duration, 1400ms) ease-in-out,
			visibility 0s linear var(--tama-hero-fade-duration, 1400ms) !important;
	}

	body .hero-slider-js-mode > .editable-hero-slide.is-active,
	body .hero-slider-js-mode > .editable-hero-slide.is-leaving {
		transition-delay: 0s !important;
	}
}


/* v3.3.3: purpose icons and balanced vertical spacing. */
.editable-purpose-nav .purpose-item__head {
	display: grid !important;
	grid-template-rows: 44px auto;
	align-content: center !important;
	justify-items: center !important;
	row-gap: 18px !important;
	padding: 24px 18px !important;
}

.editable-purpose-nav .purpose-item__head > * {
	margin: 0 !important;
}

.editable-purpose-nav .purpose-symbol {
	position: relative;
	width: 44px;
	height: 44px;
	font-size: 0 !important;
}

.editable-purpose-nav .purpose-symbol::before {
	content: "";
	display: block;
	width: 22px;
	height: 22px;
	background-color: currentColor;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* Binoculars: 観る・歩く */
.editable-purpose-nav .purpose-icon--explore::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 5.5 5 14m12-8.5 2 8M8.5 6h7M9 9h6'/%3E%3Ccircle cx='5.5' cy='16.5' r='3.5'/%3E%3Ccircle cx='18.5' cy='16.5' r='3.5'/%3E%3Cpath d='M9 16.5h6'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 5.5 5 14m12-8.5 2 8M8.5 6h7M9 9h6'/%3E%3Ccircle cx='5.5' cy='16.5' r='3.5'/%3E%3Ccircle cx='18.5' cy='16.5' r='3.5'/%3E%3Cpath d='M9 16.5h6'/%3E%3C/g%3E%3C/svg%3E");
}

/* Fork and spoon: 食べる */
.editable-purpose-nav .purpose-icon--eat::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3v7m-2-7v4.5A2.5 2.5 0 0 0 6.5 10H8V3M6 10v11M16 3c-2 2-3 4.5-3 7 0 2 1 3 3 3h1V3h-1Zm1 10v8'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3v7m-2-7v4.5A2.5 2.5 0 0 0 6.5 10H8V3M6 10v11M16 3c-2 2-3 4.5-3 7 0 2 1 3 3 3h1V3h-1Zm1 10v8'/%3E%3C/g%3E%3C/svg%3E");
}

/* Shopping bag: 買う */
.editable-purpose-nav .purpose-icon--shop::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 13H6L5 8Z'/%3E%3Cpath d='M9 9V6a3 3 0 0 1 6 0v3'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 13H6L5 8Z'/%3E%3Cpath d='M9 9V6a3 3 0 0 1 6 0v3'/%3E%3C/g%3E%3C/svg%3E");
}

/* Compass: 体験する */
.editable-purpose-nav .purpose-icon--experience::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5 5-2Z'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m15.5 8.5-2 5-5 2 2-5 5-2Z'/%3E%3C/g%3E%3C/svg%3E");
}

/* Calendar: イベント */
.editable-purpose-nav .purpose-icon--events::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='15' rx='2'/%3E%3Cpath d='M7.5 3v5M16.5 3v5M3.5 10h17M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='15' rx='2'/%3E%3Cpath d='M7.5 3v5M16.5 3v5M3.5 10h17M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01'/%3E%3C/g%3E%3C/svg%3E");
}

@media (max-width: 900px) {
	.editable-purpose-nav .purpose-item__head {
		grid-template-rows: 44px auto;
		row-gap: 14px !important;
		padding: 20px 16px !important;
	}
}

/* ========================================================================
 * v3.4 Purpose child archives: image FV + five-category bar + story cards.
 * Structure follows the referenced category landing-page pattern while using
 * the existing Tama typography, spacing and editable WordPress Query Loop.
 * ======================================================================== */

.purpose-detail-page {
	background: var(--paper);
}

.purpose-detail-page > .wp-block-shortcode {
	margin: 0 !important;
}

.purpose-detail-hero {
	position: relative;
	min-height: clamp(430px, 48vw, 620px);
	display: flex;
	align-items: stretch;
	overflow: hidden;
	background: #26332d;
	color: #fff;
}

.purpose-detail-hero__media,
.purpose-detail-hero__shade {
	position: absolute;
	inset: 0;
}

.purpose-detail-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.015);
}

.purpose-detail-hero__shade {
	background:
		linear-gradient(90deg, rgba(16, 23, 20, .76) 0%, rgba(16, 23, 20, .48) 48%, rgba(16, 23, 20, .2) 100%),
		linear-gradient(0deg, rgba(12, 18, 15, .36), transparent 55%);
}

.purpose-detail-hero__inner {
	position: relative;
	z-index: 2;
	width: min(calc(100% - 48px), var(--wp--style--global--wide-size, 1280px));
	margin: 0 auto;
	padding: clamp(28px, 4vw, 58px) 0 clamp(54px, 7vw, 92px);
	display: flex;
	flex-direction: column;
}

.purpose-detail-hero .tama-breadcrumbs {
	margin: 0 0 auto !important;
}

.purpose-detail-hero .tama-breadcrumbs,
.purpose-detail-hero .tama-breadcrumbs a,
.purpose-detail-hero .tama-breadcrumbs span,
.purpose-detail-hero .tama-breadcrumbs li {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	opacity: 1 !important;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .55);
}

.purpose-detail-hero .tama-breadcrumbs ol {
	flex-wrap: nowrap;
	overflow-x: auto;
	white-space: nowrap;
	scrollbar-width: none;
}

.purpose-detail-hero .tama-breadcrumbs ol::-webkit-scrollbar {
	display: none;
}

.purpose-detail-hero__copy {
	max-width: 720px;
	padding-top: clamp(62px, 10vw, 145px);
}

.purpose-detail-hero__eyebrow {
	margin: 0 0 13px;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .24em;
	line-height: 1.5;
	text-transform: uppercase;
}

.purpose-detail-hero__parent {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 13px;
	color: #fff;
	font-size: clamp(15px, 1.5vw, 19px);
	letter-spacing: .08em;
	text-decoration: none;
}

.purpose-detail-hero__parent::after {
	width: 46px;
	height: 1px;
	background: currentColor;
	content: "";
}

.purpose-detail-hero__current-topic {
	margin: 0 0 12px;
	color: rgba(255, 255, 255, .9);
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
}

.purpose-detail-hero h1 {
	margin: 0;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-size: clamp(42px, 6vw, 82px);
	font-weight: 500;
	letter-spacing: .06em;
	line-height: 1.2;
	text-shadow: 0 3px 22px rgba(0, 0, 0, .34);
}

.purpose-detail-hero__lead {
	max-width: 48em;
	margin-top: 22px;
	color: rgba(255, 255, 255, .96);
	font-size: clamp(14px, 1.35vw, 17px);
	line-height: 2;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .42);
}

.purpose-detail-hero__lead p {
	margin: 0;
}

.purpose-detail-nav {
	position: relative;
	z-index: 5;
	border-bottom: 1px solid var(--line);
	background: var(--paper);
}

.purpose-detail-nav ul {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.purpose-detail-nav__item {
	min-width: 0;
	border-right: 1px solid var(--line);
}

.purpose-detail-nav__item:last-child {
	border-right: 0;
}

.purpose-detail-nav__item a {
	min-height: 152px;
	display: grid;
	grid-template-rows: 52px auto;
	align-content: center;
	justify-items: center;
	gap: 17px;
	padding: 20px 12px;
	color: var(--ink);
	text-align: center;
	text-decoration: none;
	transition: background-color 180ms ease, color 180ms ease;
}

.purpose-detail-nav__icon {
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	color: var(--persimmon);
	transition: color 180ms ease, transform 180ms ease;
}

.purpose-detail-nav__icon svg {
	width: 46px;
	height: 46px;
}

.purpose-detail-nav__label {
	font-family: var(--wp--preset--font-family--serif, serif);
	font-size: clamp(16px, 1.35vw, 20px);
	line-height: 1.4;
	letter-spacing: .06em;
}

.purpose-detail-nav__item:hover a,
.purpose-detail-nav__item:focus-within a,
.purpose-detail-nav__item.is-current a,
.purpose-detail-nav__item a[aria-current="page"] {
	background: var(--persimmon);
	color: #fff;
}

.purpose-detail-nav__item:hover .purpose-detail-nav__icon,
.purpose-detail-nav__item:focus-within .purpose-detail-nav__icon,
.purpose-detail-nav__item.is-current .purpose-detail-nav__icon,
.purpose-detail-nav__item a[aria-current="page"] .purpose-detail-nav__icon {
	color: #fff;
	transform: translateY(-2px);
}

.purpose-detail-results {
	background: var(--paper-2, #f1ecdf) !important;
}

.purpose-detail-results__heading {
	margin-bottom: clamp(34px, 5vw, 62px);
}

.purpose-detail-results__heading h2 {
	margin-top: 0;
	margin-bottom: 0;
}

.purpose-detail-results .editorial-term-children {
	margin-top: 28px;
}

.purpose-detail-results .editorial-term-children ul {
	gap: 9px;
}

.purpose-detail-results .editorial-term-children a {
	border-color: rgba(49, 91, 73, .5);
	background: transparent;
	color: var(--moss-dark);
}

.purpose-detail-results .editorial-term-children a.is-current,
.purpose-detail-results .editorial-term-children a:hover,
.purpose-detail-results .editorial-term-children a:focus-visible {
	border-color: var(--moss-dark);
	background: var(--moss-dark);
	color: #fff;
}

.purpose-detail-query .wp-block-post-template {
	gap: clamp(28px, 3vw, 46px) !important;
}

.purpose-article-card {
	min-width: 0;
	overflow: hidden;
	margin: 0 !important;
	border: 0;
	background: transparent;
}

.purpose-article-card__image {
	position: relative;
	overflow: hidden;
	margin: 0 !important;
	background: #ded8cc;
}

.purpose-article-card__image::after {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(32, 39, 32, .08);
	content: "";
	pointer-events: none;
}

.purpose-article-card__image a,
.purpose-article-card__image img {
	display: block;
	width: 100%;
	height: 100%;
}

.purpose-article-card__image img {
	border-radius: 0 !important;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(.2, .7, .2, 1);
}

.purpose-article-card:hover .purpose-article-card__image img,
.purpose-article-card:focus-within .purpose-article-card__image img {
	transform: scale(1.045);
}

.purpose-article-card__body {
	padding: 19px 2px 4px;
}

.purpose-article-card__body > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

.purpose-article-card__date {
	color: var(--muted);
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 12px !important;
	letter-spacing: .08em;
}

.purpose-article-card__title {
	margin-top: 11px !important;
	font-size: clamp(18px, 1.5vw, 23px) !important;
	font-weight: 500;
	line-height: 1.65;
}

.purpose-article-card__title a {
	color: var(--ink);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	transition: background-size 220ms ease;
}

.purpose-article-card:hover .purpose-article-card__title a,
.purpose-article-card:focus-within .purpose-article-card__title a {
	background-size: 100% 1px;
}

.purpose-article-card__area {
	margin-top: 12px !important;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 11px !important;
	font-weight: 700;
	letter-spacing: .08em;
}

.purpose-detail-query .wp-block-query-pagination {
	margin-top: clamp(48px, 7vw, 84px);
}

.purpose-detail-empty {
	padding: 46px;
	border: 1px solid var(--line);
	background: rgba(255, 255, 255, .6);
	text-align: center;
}

@media (max-width: 900px) {
	.purpose-detail-hero {
		min-height: 500px;
	}

	.purpose-detail-hero__shade {
		background: linear-gradient(90deg, rgba(16, 23, 20, .7), rgba(16, 23, 20, .34));
	}

	.purpose-detail-nav__item a {
		min-height: 132px;
		gap: 12px;
	}
}

@media (max-width: 781px) {
	.purpose-detail-hero {
		min-height: 480px;
	}

	.purpose-detail-hero__inner {
		width: min(calc(100% - 36px), var(--wp--style--global--wide-size, 1280px));
		padding-top: 20px;
		padding-bottom: 52px;
	}

	.purpose-detail-hero__copy {
		padding-top: 72px;
	}

	.purpose-detail-hero__lead {
		max-width: 34em;
		line-height: 1.85;
	}

	.purpose-detail-nav ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.purpose-detail-nav__item {
		border-bottom: 1px solid var(--line);
	}

	.purpose-detail-nav__item:nth-child(2n) {
		border-right: 0;
	}

	.purpose-detail-nav__item:last-child {
		grid-column: 1 / -1;
		border-bottom: 0;
	}

	.purpose-detail-nav__item a {
		min-height: 112px;
		grid-template-rows: 40px auto;
		gap: 10px;
		padding: 14px 10px;
	}

	.purpose-detail-nav__icon,
	.purpose-detail-nav__icon svg {
		width: 38px;
		height: 38px;
	}

	.purpose-detail-query .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 520px) {
	.purpose-detail-hero {
		min-height: 430px;
	}

	.purpose-detail-hero__shade {
		background: linear-gradient(90deg, rgba(16, 23, 20, .75), rgba(16, 23, 20, .42));
	}

	.purpose-detail-hero h1 {
		font-size: clamp(38px, 12vw, 56px);
	}

	.purpose-detail-hero__lead {
		font-size: 13px;
	}

	.purpose-detail-query .wp-block-post-template {
		grid-template-columns: 1fr !important;
	}

	.purpose-detail-results .editorial-term-children ul {
		display: grid;
		grid-template-columns: 1fr;
	}

	.purpose-detail-results .editorial-term-children a {
		justify-content: space-between;
		border-radius: 0;
	}

	.purpose-detail-empty {
		padding: 32px 20px;
	}
}


/* ========================================================================
 * v3.4.2 Purpose pages reuse the exact front-page FV and purpose menu.
 * The wrapper only removes shortcode margins; all visual behavior continues to
 * come from the home hero and .editable-purpose-nav rules above.
 * ======================================================================== */
.purpose-shared-top {
	margin: 0 !important;
}

.purpose-shared-top > .editable-hero-slider {
	margin-block: 0 !important;
}

/*
 * When the shared top is rendered through a Shortcode block on lower pages,
 * WordPress keeps it inside the content-width wrapper. Force the copied home
 * FV and five-category bar to break back out to the same full-bleed width as
 * the actual front page.
 */
.purpose-detail-page .wp-block-shortcode,
.editorial-purpose-landing .wp-block-shortcode,
.editorial-purpose-taxonomy .wp-block-shortcode,
.editorial-purpose-parent .wp-block-shortcode {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.purpose-detail-page .wp-block-shortcode .purpose-shared-top,
.editorial-purpose-landing .wp-block-shortcode .purpose-shared-top,
.editorial-purpose-taxonomy .wp-block-shortcode .purpose-shared-top,
.editorial-purpose-parent .wp-block-shortcode .purpose-shared-top {
	display: block;
	width: 100vw;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

.purpose-detail-page .wp-block-shortcode .purpose-shared-top > .editable-hero-slider,
.purpose-detail-page .wp-block-shortcode .purpose-shared-top > .editable-purpose-nav,
.editorial-purpose-landing .wp-block-shortcode .purpose-shared-top > .editable-hero-slider,
.editorial-purpose-landing .wp-block-shortcode .purpose-shared-top > .editable-purpose-nav,
.editorial-purpose-taxonomy .wp-block-shortcode .purpose-shared-top > .editable-hero-slider,
.editorial-purpose-taxonomy .wp-block-shortcode .purpose-shared-top > .editable-purpose-nav,
.editorial-purpose-parent .wp-block-shortcode .purpose-shared-top > .editable-hero-slider,
.editorial-purpose-parent .wp-block-shortcode .purpose-shared-top > .editable-purpose-nav {
	width: 100%;
	max-width: none !important;
}


/* v3.4.5 responsive FV supplementary copy. */
@media (max-width: 782px) {
	.hero-lead {
		max-width: calc(100% - 28px);
		margin-top: 14px !important;
		font-size: 14px !important;
		line-height: 1.75;
		letter-spacing: .04em;
	}
}


/* ========================================================================
 * v3.4.6 Purpose hierarchy full-width repair.
 *
 * Root cause: purpose parent pages can still be rendered by WordPress's
 * generic page.html template saved in the database. That template constrains
 * <main> and Post Content to 840px, so an alignfull block inside the page body
 * cannot visually match the front page. Expand every ancestor wrapper on the
 * purpose hierarchy and remove the generic page header when it is present.
 * ======================================================================== */
body.tama-purpose-hierarchy {
	overflow-x: clip;
}

body.tama-purpose-hierarchy main.wp-block-group.alignwide,
body.tama-purpose-hierarchy main.wp-block-group.alignfull,
body.tama-purpose-hierarchy .wp-block-post-content,
body.tama-purpose-hierarchy .wp-block-post-content > .wp-block-group,
body.tama-purpose-hierarchy .purpose-detail-page,
body.tama-purpose-hierarchy .purpose-shared-top,
body.tama-purpose-hierarchy .purpose-shared-top > .editable-hero-slider,
body.tama-purpose-hierarchy .purpose-shared-top > .editable-purpose-nav {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Generic page.html fallback: remove its 840px shell and duplicate heading. */
body.tama-purpose-hierarchy main.wp-block-group.alignwide:not(.purpose-guide-layout) {
	padding-top: 0 !important;
	padding-right: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 0 !important;
}

body.tama-purpose-hierarchy main.wp-block-group.alignwide:not(.purpose-guide-layout) > .wp-block-shortcode:first-child,
body.tama-purpose-hierarchy main.wp-block-group.alignwide:not(.purpose-guide-layout) > .wp-block-post-title,
body.tama-purpose-hierarchy main.wp-block-group.alignwide:not(.purpose-guide-layout) > .wp-block-post-featured-image {
	display: none !important;
}

body.tama-purpose-hierarchy main.wp-block-group.alignwide:not(.purpose-guide-layout) > .wp-block-post-content {
	padding: 0 !important;
}

/* The shortcode renderer is stripped at runtime, but keep a CSS fallback for
 * database-saved templates and cache layers that retain the wrapper. */
body.tama-purpose-hierarchy .wp-block-shortcode:has(> .purpose-shared-top),
body.tama-purpose-hierarchy .wp-block-shortcode:has(.purpose-shared-top) {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.tama-purpose-hierarchy .purpose-shared-top {
	position: relative;
	left: auto;
	right: auto;
	transform: none;
}

@supports not (overflow: clip) {
	body.tama-purpose-hierarchy {
		overflow-x: hidden;
	}
}


/* Override the earlier viewport breakout rule when an old Shortcode wrapper is
 * still present. The expanded page ancestors now provide the true full width. */
body.tama-purpose-hierarchy .purpose-detail-page .wp-block-shortcode .purpose-shared-top,
body.tama-purpose-hierarchy .editorial-purpose-landing .wp-block-shortcode .purpose-shared-top,
body.tama-purpose-hierarchy .editorial-purpose-taxonomy .wp-block-shortcode .purpose-shared-top,
body.tama-purpose-hierarchy .editorial-purpose-parent .wp-block-shortcode .purpose-shared-top {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ========================================================================
 * v3.4.7 Purpose FV position parity with the front page.
 *
 * The generic .wp-block-post-content rule adds 80px vertical and 24px
 * horizontal padding. Width expansion alone did not remove that padding, so
 * the copied FV started lower and its image crop was offset from the actual
 * front page. Remove every inherited gap/padding around the shared top while
 * leaving the FV block and its focal-position data unchanged.
 * ======================================================================== */
body.tama-purpose-hierarchy main.purpose-guide-layout,
body.tama-purpose-hierarchy main.purpose-guide-layout > .wp-block-post-content,
body.tama-purpose-hierarchy .wp-block-post-content,
body.tama-purpose-hierarchy .wp-block-post-content > .purpose-detail-page,
body.tama-purpose-hierarchy .purpose-detail-page,
body.tama-purpose-hierarchy .purpose-shared-top {
	box-sizing: border-box;
	max-width: none !important;
	padding: 0 !important;
	margin-top: 0 !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
	margin-left: 0 !important;
}

/* WordPress flow-layout block gaps can still move the first rendered block. */
body.tama-purpose-hierarchy .wp-block-post-content > :first-child,
body.tama-purpose-hierarchy .purpose-detail-page > :first-child,
body.tama-purpose-hierarchy .purpose-detail-page > .purpose-shared-top,
body.tama-purpose-hierarchy .purpose-detail-page > .wp-block-shortcode:first-child {
	margin-block-start: 0 !important;
}

/* Keep the wrapper and first view flush with the header/content boundaries. */
body.tama-purpose-hierarchy .purpose-shared-top > .editable-hero-slider,
body.tama-purpose-hierarchy .purpose-detail-page > .purpose-detail-results {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Match the front-page cover geometry without overriding saved focal points. */
body.tama-purpose-hierarchy .editable-hero-slider,
body.tama-purpose-hierarchy .editable-hero-slider > .editable-hero-slide {
	inset-inline: 0;
	width: 100% !important;
	min-height: 650px !important;
}

body.tama-purpose-hierarchy .editable-hero-slider .wp-block-cover__image-background {
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 782px) {
	body.tama-purpose-hierarchy .editable-hero-slider,
	body.tama-purpose-hierarchy .editable-hero-slider > .editable-hero-slide {
		min-height: 560px !important;
	}
}

/* ========================================================================
 * v3.5.3: match the real front-page block gap and block layout structure.
 *
 * The Site Editor's saved front-page template is a flow layout. WordPress
 * therefore inserts its current global block gap between the 650px FV and the
 * five-purpose menu. Purpose pages previously overrode that live value to 0.
 * Read the same WordPress custom property instead of freezing today's pixel
 * value, so both views continue to match after Global Styles changes.
 * ======================================================================== */
body.tama-purpose-hierarchy .purpose-shared-top.is-layout-flow > .editable-purpose-nav.purpose-category-bar--shared {
	margin-block-start: var(--wp--style--block-gap, var(--wp--preset--spacing--30, 0px)) !important;
	margin-block-end: 0 !important;
}

/* === v3.4.8: useful discovery, model courses and no-login trip planner === */

.tama-planner-teaser {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(24px, 5vw, 72px);
	align-items: center;
	width: min(1320px, calc(100% - 48px));
	margin: clamp(36px, 6vw, 80px) auto;
	padding: clamp(28px, 4.5vw, 56px);
	border: 1px solid rgba(35, 57, 45, .16);
	border-radius: 28px;
	background:
		radial-gradient(circle at 88% 20%, rgba(220, 115, 76, .18), transparent 28%),
		linear-gradient(135deg, #f5f0e5, #e9efe6);
	box-shadow: 0 18px 50px rgba(35, 57, 45, .09);
}

.tama-planner-teaser h2,
.tama-planner-teaser p {
	margin-top: 0;
}

.tama-planner-teaser h2 {
	margin-bottom: 12px;
	font-size: clamp(1.9rem, 4vw, 3.3rem);
	line-height: 1.18;
}

.tama-planner-teaser > div > p:last-child {
	max-width: 46rem;
	margin-bottom: 0;
	font-size: clamp(1rem, 1.4vw, 1.18rem);
}

.tama-planner-teaser__button,
.tama-planner__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 54px;
	padding: 14px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--persimmon, #d66f4b);
	color: #fff !important;
	font-weight: 700;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.tama-planner-teaser__button:hover,
.tama-planner__submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(123, 66, 43, .22);
}

.tama-planner-page {
	margin: 0;
	background: var(--wp--preset--color--paper, #f8f4eb);
}

.tama-planner-shell {
	width: min(1180px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(48px, 7vw, 96px) 0;
}

.tama-planner {
	color: var(--wp--preset--color--ink, #25312b);
}

.tama-planner__intro {
	max-width: 820px;
	margin-bottom: clamp(32px, 5vw, 56px);
}

.tama-planner__intro h1 {
	margin: 8px 0 18px;
	font-size: clamp(2.35rem, 6vw, 5.25rem);
	line-height: 1.08;
	letter-spacing: -.025em;
}

.tama-planner__intro > p:last-child {
	max-width: 720px;
	font-size: clamp(1.03rem, 1.8vw, 1.3rem);
	line-height: 1.9;
}

.tama-planner__form {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	padding: clamp(20px, 3.5vw, 36px);
	border-radius: 24px;
	background: var(--wp--preset--color--moss-dark, #20372d);
	box-shadow: 0 22px 60px rgba(25, 48, 37, .16);
}

.tama-planner__form label {
	display: grid;
	gap: 8px;
	color: #fff;
	font-size: .86rem;
	font-weight: 700;
}

.tama-planner__form select {
	width: 100%;
	min-height: 52px;
	padding: 0 42px 0 15px;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 12px;
	background-color: #fff;
	color: #243329;
	font: inherit;
}

.tama-planner__submit {
	grid-column: 1 / -1;
	justify-self: start;
	margin-top: 8px;
}

.tama-planner__result {
	scroll-margin-top: 32px;
	margin-top: clamp(36px, 6vw, 72px);
}

.tama-planner__result-heading,
.tama-related-stories__heading,
.tama-course-section__heading {
	display: flex;
	gap: 24px;
	align-items: end;
	justify-content: space-between;
	margin-bottom: 26px;
}

.tama-planner__result-heading h2,
.tama-related-stories__heading h2,
.tama-course-section__heading h2 {
	margin: 4px 0 4px;
	font-size: clamp(1.8rem, 3.5vw, 3rem);
	line-height: 1.2;
}

.tama-planner__result-heading p,
.tama-related-stories__heading p,
.tama-course-section__heading p {
	margin-top: 0;
}

.tama-planner__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.tama-planner__actions button,
.tama-planner__saved-row button {
	min-height: 42px;
	padding: 8px 15px;
	border: 1px solid rgba(35, 57, 45, .24);
	border-radius: 999px;
	background: #fff;
	color: inherit;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.tama-planner__stops {
	display: grid;
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tama-planner-stop {
	display: grid;
	grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
	overflow: hidden;
	border: 1px solid rgba(35, 57, 45, .13);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 10px 32px rgba(35, 57, 45, .07);
}

.tama-planner-stop__image {
	display: block;
	min-height: 250px;
	background: #dfe6dc;
}

.tama-planner-stop__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 250px;
	object-fit: cover;
}

.tama-planner-stop__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(22px, 4vw, 40px);
}

.tama-planner-stop__number {
	color: var(--wp--preset--color--persimmon, #d66f4b);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .14em;
}

.tama-planner-stop__meta {
	display: flex;
	gap: 7px;
	flex-wrap: wrap;
	margin: 14px 0;
}

.tama-planner-stop__meta span {
	padding: 5px 9px;
	border-radius: 999px;
	background: #edf1e9;
	font-size: .78rem;
}

.tama-planner-stop h3 {
	margin: 0 0 12px;
	font-size: clamp(1.35rem, 2.4vw, 2rem);
	line-height: 1.4;
}

.tama-planner-stop h3 a,
.tama-related-card h3 a {
	color: inherit;
	text-decoration: none;
}

.tama-planner-stop__excerpt {
	margin: 0;
	line-height: 1.8;
}

.tama-planner-stop__links {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: auto;
	padding-top: 22px;
}

.tama-planner-stop__links a {
	font-weight: 700;
}

.tama-planner__note {
	margin: 20px 0 0;
	color: rgba(35, 49, 43, .72);
	font-size: .88rem;
}

.tama-planner__saved {
	margin-top: 30px;
	padding: 18px 20px;
	border: 1px solid rgba(35, 57, 45, .16);
	border-radius: 16px;
	background: rgba(255, 255, 255, .55);
}

.tama-planner__saved summary {
	font-weight: 800;
	cursor: pointer;
}

.tama-planner__saved-row {
	display: flex;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0;
	border-bottom: 1px solid rgba(35, 57, 45, .1);
}

.tama-planner__saved-row a {
	font-weight: 700;
}

.tama-planner__saved-row button {
	min-height: 34px;
	padding: 4px 11px;
	font-size: .8rem;
}

.tama-planner-guide {
	margin-top: clamp(48px, 8vw, 96px);
	padding-top: clamp(34px, 5vw, 60px);
	border-top: 1px solid rgba(35, 57, 45, .16);
}

.tama-planner-guide h2 {
	font-size: clamp(1.65rem, 3vw, 2.4rem);
}

.tama-planner-guide__steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 22px 0;
}

.tama-planner-guide__steps p {
	margin: 0;
	padding: 20px;
	border-radius: 14px;
	background: #fff;
}

.tama-related-stories {
	width: min(1080px, 100%);
	margin: clamp(48px, 7vw, 84px) auto 0;
	padding-top: clamp(32px, 5vw, 56px);
	border-top: 1px solid rgba(35, 57, 45, .16);
}

.tama-related-stories__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.tama-related-card {
	overflow: hidden;
	border: 1px solid rgba(35, 57, 45, .12);
	border-radius: 16px;
	background: #fff;
}

.tama-related-card__image {
	display: block;
	aspect-ratio: 4 / 3;
	background: #e3e9e0;
}

.tama-related-card__image:empty::before {
	display: block;
	width: 100%;
	height: 100%;
	content: '';
	background: linear-gradient(135deg, #dbe5db, #f1eadc);
}

.tama-related-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tama-related-card__body {
	padding: 18px;
}

.tama-related-card__body p,
.tama-related-card__body span {
	margin: 0;
	color: rgba(35, 49, 43, .68);
	font-size: .78rem;
}

.tama-related-card h3 {
	margin: 8px 0 14px;
	font-size: 1.08rem;
	line-height: 1.55;
}

.tama-course-section {
	width: 100%;
	margin: 0;
	padding: clamp(56px, 8vw, 100px) max(24px, calc((100vw - 1320px) / 2));
	background: var(--wp--preset--color--moss-dark, #20372d);
	color: #fff;
}

.tama-course-section__heading > a {
	color: #fff;
}

.tama-course-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.tama-course-card {
	position: relative;
	display: flex;
	min-height: 300px;
	flex-direction: column;
	padding: clamp(24px, 3vw, 38px);
	border-radius: 18px;
	color: #203129 !important;
	text-decoration: none;
	transition: transform .22s ease, box-shadow .22s ease;
}

.tama-course-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 46px rgba(0, 0, 0, .24);
}

.tama-course-card--sky { background: #b9dce7; }
.tama-course-card--sage { background: #c6d6b5; }
.tama-course-card--peach { background: #ebc3ad; }
.tama-course-card--yellow { background: #eadb8f; }

.tama-course-card__number {
	margin-bottom: auto;
	font-size: 2.2rem;
	font-weight: 300;
}

.tama-course-card small {
	margin-top: 32px;
	font-weight: 700;
	letter-spacing: .06em;
}

.tama-course-card h3 {
	margin: 8px 0 10px;
	font-size: clamp(1.35rem, 2.5vw, 2rem);
	line-height: 1.35;
}

.tama-course-card p {
	margin: 0;
}

.tama-course-card__arrow {
	position: absolute;
	right: 24px;
	top: 22px;
	font-size: 1.35rem;
}

.tama-course-section__empty {
	padding: clamp(28px, 5vw, 56px);
	border: 1px solid rgba(255, 255, 255, .24);
	border-radius: 18px;
}

.tama-course-section__empty a {
	color: #fff;
	font-weight: 700;
}

.tama-course-page,
.tama-course-archive {
	background: var(--wp--preset--color--paper, #f8f4eb);
}

.tama-course-hero {
	padding: clamp(48px, 7vw, 90px) 24px;
	background: var(--wp--preset--color--moss-dark, #20372d);
	color: #fff;
}

.tama-course-hero > * {
	width: min(1080px, 100%);
	margin-right: auto;
	margin-left: auto;
}

.tama-course-hero h1 {
	font-size: clamp(2.25rem, 5.5vw, 4.7rem);
	line-height: 1.1;
}

.tama-course-content {
	width: min(900px, calc(100% - 48px));
	margin: 0 auto;
	padding: clamp(44px, 7vw, 84px) 0;
}

.tama-course-facts {
	margin: 24px 0 34px;
	padding: 22px;
	border-radius: 16px;
	background: #edf1e9;
}

.tama-course-facts dl {
	display: flex;
	gap: 10px 28px;
	flex-wrap: wrap;
	margin: 0;
}

.tama-course-facts dl > div {
	display: flex;
	gap: 8px;
}

.tama-course-facts dt {
	font-weight: 800;
}

.tama-course-facts dd {
	margin: 0;
}

.tama-course-facts > a {
	display: inline-block;
	margin-top: 18px;
	font-weight: 700;
}

.tama-footer-guidance {
	display: flex;
	width: min(1320px, calc(100% - 48px));
	gap: 10px 22px;
	flex-wrap: wrap;
	margin: 28px auto;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .18);
}

.tama-footer-guidance a {
	color: inherit;
	font-size: .88rem;
}

@media (max-width: 900px) {
	.tama-planner__form {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tama-course-grid,
	.tama-related-stories__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tama-course-card:last-child,
	.tama-related-card:last-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 680px) {
	.tama-planner-teaser {
		grid-template-columns: 1fr;
		width: min(100% - 28px, 1320px);
		border-radius: 20px;
	}

	.tama-planner-teaser__button {
		justify-self: start;
	}

	.tama-planner-shell {
		width: min(100% - 28px, 1180px);
	}

	.tama-planner__form,
	.tama-planner-guide__steps,
	.tama-course-grid,
	.tama-related-stories__grid {
		grid-template-columns: 1fr;
	}

	.tama-planner__submit {
		width: 100%;
	}

	.tama-planner__result-heading,
	.tama-related-stories__heading,
	.tama-course-section__heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.tama-planner-stop {
		grid-template-columns: 1fr;
	}

	.tama-planner-stop__image,
	.tama-planner-stop__image img {
		min-height: 210px;
	}

	.tama-course-card:last-child,
	.tama-related-card:last-child {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tama-planner-teaser__button,
	.tama-planner__submit,
	.tama-course-card {
		transition: none;
	}
}

/* Mobile FV: keep the headline, supporting copy and current-area CTA in flow. */
@media (max-width: 782px) {
	.editable-hero-slider,
	.editable-hero-slider > .editable-hero-slide,
	body.tama-purpose-hierarchy .editable-hero-slider,
	body.tama-purpose-hierarchy .editable-hero-slider > .editable-hero-slide {
		min-height: clamp(580px, 145vw, 650px) !important;
	}

	.hero-inner {
		box-sizing: border-box;
		min-height: clamp(580px, 145vw, 650px);
		justify-content: flex-start;
		padding: clamp(66px, 18vw, 92px) 0 22px;
	}

	.hero-headline {
		width: min(100%, 19rem);
		max-width: none !important;
		align-self: center;
		font-size: clamp(32px, 10.5vw, 46px) !important;
		letter-spacing: .025em;
		line-height: 1.32;
		line-break: strict;
		text-wrap: balance;
	}

	.hero-lead {
		width: min(100%, 22rem);
		max-width: none;
		align-self: center;
		margin-top: 12px !important;
		font-size: clamp(12px, 3.5vw, 14px) !important;
		letter-spacing: .02em;
		line-height: 1.65;
		text-wrap: balance;
	}

	.hero-area-card {
		position: static;
		inset: auto;
		width: min(100%, 23rem);
		max-width: none;
		align-self: center;
		margin: auto auto 0 !important;
	}

	.hero-area-card > * {
		margin-block-start: 4px;
	}

	.hero-area-card h2 {
		font-size: clamp(26px, 8vw, 36px) !important;
		line-height: 1.25;
	}

	.hero-area-card p {
		font-size: clamp(11px, 3.3vw, 13px) !important;
		line-height: 1.55;
	}

	.hero-area-card .wp-block-buttons {
		margin-top: 10px;
	}

	.hero-area-card .wp-block-button__link {
		min-height: 44px;
		padding: 9px 20px;
		font-size: 13px;
		line-height: 1.45;
	}
}

/* Mobile navigation: use the full viewport and keep every destination legible. */
@media (max-width: 782px) {
	.portal-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		top: -5px !important;
		bottom: auto !important;
		box-sizing: border-box;
		width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;
		padding: max(20px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom)) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		background: rgba(246, 241, 231, .99) !important;
		color: var(--ink);
		z-index: 100000;
	}

	.portal-nav .is-menu-open .wp-block-navigation__responsive-close,
	.portal-nav .is-menu-open .wp-block-navigation__responsive-dialog {
		width: 100%;
		min-height: 100%;
	}

	.portal-nav .is-menu-open .wp-block-navigation__responsive-container-close {
		top: 0;
		right: 0;
		display: grid;
		width: 46px;
		height: 46px;
		place-items: center;
		padding: 0;
		border: 1px solid var(--moss);
		border-radius: 50%;
		color: var(--moss-dark);
	}

	.portal-nav .is-menu-open .wp-block-navigation__responsive-container-close:hover,
	.portal-nav .is-menu-open .wp-block-navigation__responsive-container-close:focus-visible {
		background: var(--moss-dark);
		color: var(--white);
	}

	.portal-nav .is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex !important;
		width: 100%;
		min-height: 100%;
		align-items: center !important;
		justify-content: center !important;
		flex-direction: column;
		padding: 62px 0 20px !important;
	}

	.portal-nav .is-menu-open .wp-block-navigation__responsive-container-content::before {
		display: block;
		margin-bottom: 16px;
		color: var(--persimmon);
		content: "MENU";
		font-size: 10px;
		font-weight: 900;
		letter-spacing: .28em;
	}

	.portal-nav .is-menu-open .wp-block-navigation__container {
		display: grid !important;
		width: min(100%, 28rem) !important;
		grid-template-columns: minmax(0, 1fr) !important;
		align-items: stretch !important;
		gap: 0 !important;
		margin: 0 auto !important;
	}

	.portal-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
		width: 100% !important;
		max-width: none !important;
		justify-self: stretch !important;
		border-bottom: 1px solid var(--line);
	}

	.portal-nav .is-menu-open .wp-block-navigation-item:last-child {
		border-bottom: 0;
	}

	.portal-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: flex !important;
		width: 100% !important;
		min-height: 54px;
		box-sizing: border-box;
		align-items: center;
		justify-content: space-between;
		padding: 14px 6px !important;
		font-family: var(--wp--preset--font-family--mincho);
		font-size: clamp(19px, 6vw, 25px);
		font-weight: 600;
		letter-spacing: .06em;
		line-height: 1.35;
	}

	.portal-en .portal-nav .is-menu-open .wp-block-navigation-item__content {
		font-family: inherit;
		font-size: clamp(18px, 5.4vw, 23px);
		font-weight: 800;
	}

	.portal-nav .is-menu-open .wp-block-navigation-item__content::after {
		position: static;
		width: auto;
		height: auto;
		margin-left: 16px;
		background: none;
		color: var(--persimmon);
		content: "→";
		font-family: sans-serif;
		font-size: .85em;
		line-height: 1;
		transform: none;
		transition: none;
	}

	.portal-nav .is-menu-open .wp-block-navigation-item__content:hover,
	.portal-nav .is-menu-open .wp-block-navigation-item__content:focus-visible {
		color: var(--persimmon);
	}

	.portal-nav .is-menu-open .wp-block-navigation-item__content[href*="/planner/"] {
		margin-top: 16px;
		justify-content: center;
		padding-inline: 18px;
		border-radius: 999px;
		background: var(--persimmon);
		color: var(--white);
	}

	.portal-nav .is-menu-open .wp-block-navigation-item__content[href*="/planner/"]::after {
		margin-left: 12px;
		color: currentColor;
	}
}

/* Header purpose submenu: branded dropdown on desktop, collapsible list on mobile. */
@media (min-width: 783px) {
	.portal-header .portal-nav .wp-block-navigation__submenu-container {
		min-width: 190px;
		padding: 8px;
		border: 1px solid var(--line);
		border-radius: 14px;
		background: rgba(246, 241, 231, .99);
		box-shadow: 0 16px 36px rgba(13, 37, 29, .16);
	}

	.portal-header .portal-nav .wp-block-navigation__submenu-container::before {
		position: absolute;
		top: -10px;
		right: 0;
		left: 0;
		height: 10px;
		content: "";
	}

	.portal-header .portal-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		width: 100%;
		box-sizing: border-box;
		padding: 10px 12px;
		border-radius: 9px;
		font-size: 12px;
		line-height: 1.4;
	}

	.portal-header .portal-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.portal-header .portal-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
		background: rgba(219, 116, 75, .12);
		color: var(--persimmon);
	}

	.portal-header .portal-nav .wp-block-navigation__submenu-icon {
		margin-left: 6px;
	}
}

@media (max-width: 782px) {
	.portal-nav .is-menu-open .wp-block-navigation__container > .has-child {
		position: relative;
	}

	.portal-nav .is-menu-open .wp-block-navigation__container > .has-child > .wp-block-navigation-item__content {
		padding-right: 52px !important;
	}

	.portal-nav .is-menu-open .wp-block-navigation__container > .has-child > .wp-block-navigation-item__content::after {
		display: none;
	}

	.portal-nav .is-menu-open .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon {
		position: absolute;
		top: 7px;
		right: 3px;
		display: grid !important;
		width: 40px;
		height: 40px;
		place-items: center;
		padding: 0;
		border: 1px solid rgba(38, 75, 58, .32);
		border-radius: 50%;
		color: var(--moss-dark);
		z-index: 1;
	}

	.portal-nav .is-menu-open .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-icon[aria-expanded="true"] {
		background: var(--moss-dark);
		color: var(--white);
	}

	.portal-nav .is-menu-open .has-child > .wp-block-navigation__submenu-container {
		position: static !important;
		display: none !important;
		width: 100% !important;
		height: 0 !important;
		box-sizing: border-box;
		gap: 4px !important;
		padding: 0 8px !important;
		margin: 0 !important;
		border: 0 !important;
		background: transparent !important;
		opacity: 0 !important;
		visibility: hidden !important;
	}

	.portal-nav .is-menu-open .has-child > .wp-block-navigation__submenu-icon[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
		display: grid !important;
		height: auto !important;
		grid-template-columns: minmax(0, 1fr);
		padding-block: 4px 12px !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	.portal-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		width: 100% !important;
		border: 0;
	}

	.portal-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		min-height: 44px;
		padding: 10px 14px !important;
		border-radius: 10px;
		background: rgba(255, 255, 255, .62);
		font-size: 15px;
		font-weight: 600;
		letter-spacing: .04em;
	}
}


/* v3.5.0: replace-only editorial article system. */
.editorial-story-content-wrap .tama-article-lead,
.editor-styles-wrapper .tama-post-editor__body .tama-article-lead {
	max-width: 760px;
	margin: 0 auto clamp(28px, 4vw, 42px);
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(18px, 2vw, 22px);
	line-height: 1.9;
}

.editorial-story-content-wrap .tama-article-update-note,
.editor-styles-wrapper .tama-post-editor__body .tama-article-update-note {
	margin: 0 0 clamp(52px, 7vw, 76px);
	border-left: 4px solid var(--persimmon);
	border-radius: 0 12px 12px 0;
}

.editorial-story-content-wrap .tama-article-update-note p,
.editor-styles-wrapper .tama-post-editor__body .tama-article-update-note p {
	margin: 0;
}

.editorial-story-content-wrap .tama-article-update-note p + p,
.editor-styles-wrapper .tama-post-editor__body .tama-article-update-note p + p {
	margin-top: 6px;
	color: var(--muted);
}

.editorial-story-content-wrap .tama-article-summary,
.editor-styles-wrapper .tama-post-editor__body .tama-article-summary {
	position: relative;
	padding: clamp(26px, 4vw, 38px);
	margin: 0 0 clamp(64px, 8vw, 92px);
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--persimmon) 35%, transparent);
	border-radius: 18px;
	background: color-mix(in srgb, var(--paper-2) 68%, white);
}

.editorial-story-content-wrap .tama-article-summary::before,
.editor-styles-wrapper .tama-post-editor__body .tama-article-summary::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 7px;
	height: 100%;
	background: var(--persimmon);
	content: "";
}

.editorial-story-content-wrap .tama-article-summary h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-summary h2 {
	margin: 0 0 18px;
	font-size: clamp(24px, 3vw, 32px);
}

.editorial-story-content-wrap .tama-article-summary ul,
.editor-styles-wrapper .tama-post-editor__body .tama-article-summary ul {
	padding-left: 1.3em;
	margin: 0;
}

.editorial-story-content-wrap .tama-article-summary li + li,
.editor-styles-wrapper .tama-post-editor__body .tama-article-summary li + li {
	margin-top: 8px;
}

.editorial-story-content-wrap .tama-article-overview,
.editor-styles-wrapper .tama-post-editor__body .tama-article-overview {
	margin: 0 0 clamp(76px, 10vw, 112px);
}

.editorial-story-content-wrap .tama-article-overview > h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-overview > h2 {
	margin: 0 0 24px;
	font-size: clamp(28px, 4vw, 40px);
}

.editorial-story-content-wrap .tama-article-fact-grid,
.editor-styles-wrapper .tama-post-editor__body .tama-article-fact-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.editorial-story-content-wrap .tama-article-fact-grid > .wp-block-column,
.editor-styles-wrapper .tama-post-editor__body .tama-article-fact-grid > .wp-block-column {
	flex-basis: auto !important;
	min-height: 118px;
	padding: 20px;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: var(--paper-2);
}

.editorial-story-content-wrap .tama-article-fact-grid p,
.editor-styles-wrapper .tama-post-editor__body .tama-article-fact-grid p {
	margin: 0;
}

.editorial-story-content-wrap .tama-article-fact__label,
.editor-styles-wrapper .tama-post-editor__body .tama-article-fact__label {
	margin-bottom: 10px !important;
	font-weight: 800;
	letter-spacing: .12em;
}

.editorial-story-content-wrap .tama-article-section,
.editor-styles-wrapper .tama-post-editor__body .tama-article-section {
	padding-top: clamp(24px, 4vw, 40px);
	margin: 0 0 clamp(84px, 11vw, 128px);
	border-top: 1px solid var(--ink);
}

.editorial-story-content-wrap .tama-article-section__eyebrow,
.editor-styles-wrapper .tama-post-editor__body .tama-article-section__eyebrow {
	margin: 0 0 10px;
	font-weight: 800;
	letter-spacing: .14em;
}

.editorial-story-content-wrap .tama-article-section > h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-section > h2 {
	max-width: 720px;
	margin: 0 0 clamp(24px, 4vw, 36px);
	font-family: var(--wp--preset--font-family--mincho);
	font-size: clamp(30px, 4.5vw, 46px);
	font-weight: 500;
	line-height: 1.45;
}

.editorial-story-content-wrap .tama-article-section__image,
.editor-styles-wrapper .tama-post-editor__body .tama-article-section__image {
	width: min(100%, 960px);
	margin: 0 0 clamp(26px, 4vw, 38px);
	overflow: hidden;
	border-radius: 18px;
	background: var(--paper-2);
}

.editorial-story-content-wrap .tama-article-section__image img,
.editor-styles-wrapper .tama-post-editor__body .tama-article-section__image img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.editorial-story-content-wrap .tama-article-section__image figcaption,
.editor-styles-wrapper .tama-post-editor__body .tama-article-section__image figcaption {
	padding: 9px 4px 0;
	color: var(--muted);
	font-size: 11px;
	line-height: 1.6;
}

.editorial-story-content-wrap .tama-article-section > p:not(.tama-article-section__eyebrow),
.editor-styles-wrapper .tama-post-editor__body .tama-article-section > p:not(.tama-article-section__eyebrow) {
	font-size: clamp(16px, 1.5vw, 18px);
	line-height: 2;
}

.editorial-story-content-wrap .tama-article-keyfacts,
.editor-styles-wrapper .tama-post-editor__body .tama-article-keyfacts {
	display: grid;
	gap: 10px;
	padding: 22px 24px;
	margin: 28px 0 22px;
	border-radius: 14px;
	background: var(--paper-2);
}

.editorial-story-content-wrap .tama-article-keyfacts p,
.editor-styles-wrapper .tama-post-editor__body .tama-article-keyfacts p {
	margin: 0;
	line-height: 1.75;
}

.editorial-story-content-wrap .tama-article-official-link,
.editor-styles-wrapper .tama-post-editor__body .tama-article-official-link {
	margin-top: 20px;
}

.editorial-story-content-wrap .tama-article-checklist,
.editor-styles-wrapper .tama-post-editor__body .tama-article-checklist {
	padding: clamp(28px, 5vw, 44px);
	margin: 0 0 clamp(72px, 9vw, 104px);
	border: 1px solid var(--line);
	border-radius: 18px;
}

.editorial-story-content-wrap .tama-article-checklist h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-checklist h2 {
	margin-top: 0;
}

.editorial-story-content-wrap .tama-article-checklist li + li,
.editor-styles-wrapper .tama-post-editor__body .tama-article-checklist li + li {
	margin-top: 10px;
}

.editorial-story-content-wrap .tama-article-faq,
.editor-styles-wrapper .tama-post-editor__body .tama-article-faq {
	margin: 0 0 clamp(72px, 9vw, 104px);
	border-radius: 20px;
}

.editorial-story-content-wrap .tama-article-faq h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-faq h2 {
	margin: 0 0 30px;
	font-size: clamp(28px, 4vw, 40px);
}

.editorial-story-content-wrap .tama-article-faq h3,
.editor-styles-wrapper .tama-post-editor__body .tama-article-faq h3 {
	padding-top: 22px;
	margin: 22px 0 8px;
	border-top: 1px solid var(--line);
	font-size: clamp(18px, 2.2vw, 23px);
}

.editorial-story-content-wrap .tama-article-faq h2 + h3,
.editor-styles-wrapper .tama-post-editor__body .tama-article-faq h2 + h3 {
	padding-top: 0;
	margin-top: 0;
	border-top: 0;
}

.editorial-story-content-wrap .tama-article-faq p,
.editor-styles-wrapper .tama-post-editor__body .tama-article-faq p {
	margin: 0;
	line-height: 1.85;
}

.editorial-story-content-wrap .tama-article-cta,
.editor-styles-wrapper .tama-post-editor__body .tama-article-cta {
	margin: 0 0 clamp(64px, 8vw, 92px);
	border-radius: 20px;
}

.editorial-story-content-wrap .tama-article-cta h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-cta h2 {
	margin-top: 0;
}

.editorial-story-content-wrap .tama-article-cta a:not(.wp-block-button__link),
.editor-styles-wrapper .tama-post-editor__body .tama-article-cta a:not(.wp-block-button__link) {
	color: var(--yellow);
}

.editorial-story-content-wrap .tama-article-source-note,
.editor-styles-wrapper .tama-post-editor__body .tama-article-source-note {
	padding-top: 28px;
	margin-top: 72px;
	border-top: 1px solid var(--line);
	color: var(--muted);
}

.editorial-story-content-wrap .tama-article-source-note h2,
.editor-styles-wrapper .tama-post-editor__body .tama-article-source-note h2 {
	color: var(--ink);
	font-size: clamp(22px, 3vw, 28px);
}

@media (max-width: 620px) {
	.editorial-story-content-wrap .tama-article-fact-grid,
	.editor-styles-wrapper .tama-post-editor__body .tama-article-fact-grid {
		grid-template-columns: 1fr;
	}

	.editorial-story-content-wrap .tama-article-fact-grid > .wp-block-column,
	.editor-styles-wrapper .tama-post-editor__body .tama-article-fact-grid > .wp-block-column {
		min-height: auto;
	}

	.editorial-story-content-wrap .tama-article-faq,
	.editor-styles-wrapper .tama-post-editor__body .tama-article-faq,
	.editorial-story-content-wrap .tama-article-cta,
	.editor-styles-wrapper .tama-post-editor__body .tama-article-cta {
		padding: 24px !important;
		border-radius: 14px;
	}
}

/* ========================================================================
 * v3.5.2: exact first-view and purpose-menu height parity.
 * Apply one source of truth to both the front page and all purpose pages after
 * every historical compatibility rule, so saved templates cannot differ by a
 * few pixels through min-height or content-driven expansion.
 * ======================================================================== */
:root {
	--tama-shared-first-view-height: 650px;
	--tama-shared-purpose-item-height: 150px;
}

.editable-hero-slider,
.editable-hero-slider > .editable-hero-slide,
.purpose-detail-hero,
.purpose-shared-top > .purpose-detail-hero {
	box-sizing: border-box;
	height: var(--tama-shared-first-view-height) !important;
	min-height: var(--tama-shared-first-view-height) !important;
	max-height: var(--tama-shared-first-view-height) !important;
}

.editable-purpose-nav .purpose-item,
.editable-purpose-nav .purpose-item__head {
	box-sizing: border-box;
	height: var(--tama-shared-purpose-item-height) !important;
	min-height: var(--tama-shared-purpose-item-height) !important;
	max-height: var(--tama-shared-purpose-item-height) !important;
}

@media (max-width: 782px) {
	.editable-hero-slider,
	.editable-hero-slider > .editable-hero-slide,
	.purpose-detail-hero,
	.purpose-shared-top > .purpose-detail-hero {
		height: auto !important;
		min-height: clamp(580px, 145vw, 650px) !important;
		max-height: none !important;
	}
}

/* ========================================================================
 * v3.5.4: use the original purpose-page line icons on every shared menu.
 *
 * The lower-level menu used 46px line drawings without a generic circle.
 * Apply that exact icon scale and geometry to the saved front-page menu too,
 * while preserving the common 150px item height introduced in v3.5.2.
 * ======================================================================== */
.editable-purpose-nav .purpose-item__head {
	grid-template-rows: 48px auto;
	row-gap: 17px !important;
	padding: 20px 12px !important;
}

.editable-purpose-nav .purpose-symbol {
	width: 48px;
	height: 48px;
	border: 0 !important;
	border-radius: 0 !important;
}

.editable-purpose-nav .purpose-symbol::before {
	width: 46px;
	height: 46px;
}

/* Binoculars: 観る・歩く */
.editable-purpose-nav .purpose-icon--explore::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18h6l2 6h2l2-6h6l5 15a6 6 0 0 1-11 4l-2-7h-2l-2 7a6 6 0 0 1-11-4z'/%3E%3Ccircle cx='15' cy='34' r='5'/%3E%3Ccircle cx='33' cy='34' r='5'/%3E%3Cpath d='M21 24h6'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18h6l2 6h2l2-6h6l5 15a6 6 0 0 1-11 4l-2-7h-2l-2 7a6 6 0 0 1-11-4z'/%3E%3Ccircle cx='15' cy='34' r='5'/%3E%3Ccircle cx='33' cy='34' r='5'/%3E%3Cpath d='M21 24h6'/%3E%3C/g%3E%3C/svg%3E");
}

/* Fork and spoon: 食べる */
.editable-purpose-nav .purpose-icon--eat::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 8v13M9 8v9a4 4 0 0 0 8 0V8M13 21v19M31 8v32M31 8c6 5 7 13 0 18'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 8v13M9 8v9a4 4 0 0 0 8 0V8M13 21v19M31 8v32M31 8c6 5 7 13 0 18'/%3E%3C/g%3E%3C/svg%3E");
}

/* Shopping bag: 買う */
.editable-purpose-nav .purpose-icon--shop::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 17h26l-2 23H13z'/%3E%3Cpath d='M18 19v-4a6 6 0 0 1 12 0v4'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 17h26l-2 23H13z'/%3E%3Cpath d='M18 19v-4a6 6 0 0 1 12 0v4'/%3E%3C/g%3E%3C/svg%3E");
}

/* Compass: 体験する */
.editable-purpose-nav .purpose-icon--experience::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='17'/%3E%3Cpath d='m29 17-3 9-9 3 3-9z'/%3E%3Ccircle cx='24' cy='24' r='2'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='17'/%3E%3Cpath d='m29 17-3 9-9 3 3-9z'/%3E%3Ccircle cx='24' cy='24' r='2'/%3E%3C/g%3E%3C/svg%3E");
}

/* Calendar: イベント */
.editable-purpose-nav .purpose-icon--events::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='12' width='30' height='27' rx='2'/%3E%3Cpath d='M9 20h30M17 8v8M31 8v8M16 27h5M27 27h5M16 33h5M27 33h5'/%3E%3C/g%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='12' width='30' height='27' rx='2'/%3E%3Cpath d='M9 20h30M17 8v8M31 8v8M16 27h5M27 27h5M16 33h5M27 33h5'/%3E%3C/g%3E%3C/svg%3E");
}

/* Keep the current lower-level category indication from the original bar. */
.editable-purpose-nav .purpose-item.is-current .purpose-item__head {
	background: var(--persimmon);
	color: #fff;
}

.editable-purpose-nav .purpose-item.is-current .purpose-symbol,
.editable-purpose-nav .purpose-item.is-current .purpose-item__title a {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
