/*
 * Awakener Brand Site Builder — front-end styles (v1.1).
 *
 * Colours come from CSS custom properties printed from「Awakenerサイト設定 → デザイン」.
 * Page-level rules are scoped to body.awkn (brand template pages only);
 * component rules use .awkn-* classes so they also render in the block editor.
 *
 * Type scale (PC, body 17px): body 17 / hero message ~25 / Japanese section
 * heading ~31 / English heading ~44 / nav ~16 / list description ~16.5 /
 * status & notes ~14.5. Smartphones use the body size minus 1px (min 16px).
 */

:root {
	--awkn-navy: #111E36;
	--awkn-indigo: #203B63;
	--awkn-indigo-light: #48668D;
	--awkn-ivory: #F7F6F2;
	--awkn-white: #FFFFFF;
	--awkn-accent: #BBA77B;
	--awkn-text: #263348;
	--awkn-bg: #F7F6F2;
	--awkn-font-size: 17px;
	--awkn-font-size-sm: 16px;

	--awkn-serif: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", "Noto Serif CJK JP", "BIZ UDPMincho", "Source Han Serif JP", serif;
	--awkn-sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic Medium", "YuGothic", "BIZ UDPGothic", "Meiryo", sans-serif;
	--awkn-head: var(--awkn-serif);

	/* sizes */
	--f: var(--awkn-font-size);
	--fs-small: calc(var(--f) * .86);
	--fs-desc: calc(var(--f) * .97);
	--fs-nav: calc(var(--f) * .94);
	--fs-lead: calc(var(--f) * 1.03);
	--fs-message: calc(var(--f) * 1.47);
	--fs-h3: calc(var(--f) * 1.3);
	--fs-chapter: calc(var(--f) * 1.62);
	--fs-h-ja: calc(var(--f) * 1.82);
	--fs-h-en: calc(var(--f) * 2.6);
	--fs-title: calc(var(--f) * 2.85);

	--awkn-gutter: clamp(1.25rem, 5vw, 3.5rem);
	--awkn-wide: 72rem;
	--awkn-measure: 36em;
	--awkn-space: clamp(3.5rem, 7.5vw, 6.5rem);
	--awkn-rule: color-mix(in srgb, var(--awkn-indigo-light) 38%, transparent);
	--awkn-muted: color-mix(in srgb, var(--awkn-text) 84%, var(--awkn-bg));
	--awkn-ease: cubic-bezier(.2, .6, .2, 1);
}
@media (max-width: 767px) {
	:root {
		--f: var(--awkn-font-size-sm);
		--fs-message: calc(var(--f) * 1.3);
		--fs-h3: calc(var(--f) * 1.2);
		--fs-chapter: calc(var(--f) * 1.38);
		--fs-h-ja: calc(var(--f) * 1.5);
		--fs-h-en: calc(var(--f) * 1.95);
		--fs-title: calc(var(--f) * 2.25);
		--awkn-space: clamp(3rem, 12vw, 4rem);
	}
}

/* ===== Page base (brand template only) ===== */

body.awkn {
	margin: 0;
	background: var(--awkn-bg);
	color: var(--awkn-text);
	font-family: var(--awkn-sans);
	font-size: var(--f);
	font-weight: 400;
	line-height: 1.95;
	letter-spacing: .03em;
	line-break: strict;
	overflow-wrap: anywhere;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
body.awkn.awkn-head-gothic { --awkn-head: var(--awkn-sans); }
body.awkn.awkn-space-compact { --awkn-space: clamp(2.75rem, 6vw, 4.75rem); }
body.awkn.awkn-space-generous { --awkn-space: clamp(4.5rem, 10vw, 8.5rem); }

.awkn *, .awkn *::before, .awkn *::after { box-sizing: border-box; }
.awkn img { max-width: 100%; height: auto; }
.awkn a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .3em; }
.awkn :focus-visible { outline: 2px solid var(--awkn-accent); outline-offset: 3px; border-radius: 1px; }
.awkn h1, .awkn h2, .awkn h3, .awkn h4 {
	font-family: var(--awkn-head);
	font-weight: 500;
	color: inherit;
	letter-spacing: .05em;
	line-height: 1.5;
	word-break: auto-phrase; /* phrase-aware Japanese line breaks (Chrome/Edge, lang="ja") */
	text-wrap: balance;
	margin: 0;
}
.awkn p { margin: 0; }
.awkn-content { display: block; }

.awkn-skip {
	position: absolute; left: 1rem; top: -100px; z-index: 1000;
	background: var(--awkn-ivory); color: var(--awkn-navy);
	padding: .75rem 1.25rem; text-decoration: none;
}
.awkn-skip:focus { top: 1rem; }
.awkn-main:focus { outline: none; }

/* ===== Header & navigation ===== */

.awkn-header {
	background: var(--awkn-navy);
	color: var(--awkn-ivory);
	position: relative;
	z-index: 20;
}
.awkn-header__inner {
	max-width: calc(var(--awkn-wide) + 2 * var(--awkn-gutter));
	margin: 0 auto;
	padding: 1.25rem var(--awkn-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}
.awkn-logo { display: inline-flex; align-items: center; text-decoration: none; color: inherit; padding: .25rem 0; }
.awkn-logo__img { display: block; max-height: 40px; width: auto; }
.awkn-logo__text {
	font-family: var(--awkn-serif);
	font-size: calc(var(--f) * 1.3);
	letter-spacing: .2em;
	line-height: 1;
}
.awkn-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(1rem, 2.6vw, 2.25rem); }
.awkn-nav__list a {
	display: inline-block;
	font-family: var(--awkn-serif);
	font-size: var(--fs-nav);
	letter-spacing: .06em;
	text-decoration: none;
	padding: .5rem 0;
	color: color-mix(in srgb, var(--awkn-ivory) 90%, transparent);
	border-bottom: 1px solid transparent;
	transition: color .2s, border-color .2s;
}
.awkn-nav__list a:hover { color: var(--awkn-ivory); border-bottom-color: color-mix(in srgb, var(--awkn-accent) 70%, transparent); }
.awkn-nav__list .current-menu-item > a,
.awkn-nav__list a[aria-current="page"] { color: var(--awkn-ivory); border-bottom-color: var(--awkn-accent); }
.awkn-nav__list a:focus-visible { outline-offset: 4px; }

.awkn-nav-toggle { display: none; }

@media (max-width: 899px) {
	.awkn-js .awkn-nav-toggle {
		display: inline-flex; align-items: center; gap: .7rem;
		min-height: 44px; padding: .5rem .25rem;
		background: none; border: 0; color: inherit; cursor: pointer;
		font: inherit; font-size: var(--fs-small); letter-spacing: .1em;
	}
	.awkn-nav-toggle__bar,
	.awkn-nav-toggle__bar::before {
		display: block; width: 22px; height: 1px; background: currentColor; position: relative;
		transition: transform .25s var(--awkn-ease);
	}
	.awkn-nav-toggle__bar { transform: translateY(-3px); }
	.awkn-nav-toggle__bar::before { content: ""; position: absolute; top: 6px; }
	.awkn-nav-open .awkn-nav-toggle__bar { transform: translateY(0) rotate(20deg); }
	.awkn-nav-open .awkn-nav-toggle__bar::before { transform: translateY(-6px) rotate(-40deg); }

	.awkn-header__inner { flex-wrap: wrap; padding-block: .9rem; }
	.awkn-js .awkn-nav { display: none; width: 100%; }
	.awkn-js.awkn-nav-open .awkn-nav { display: block; }
	.awkn-nav { width: 100%; }
	.awkn-header .awkn-nav__list { flex-direction: column; gap: 0; padding: .25rem 0 1rem; }
	.awkn-header .awkn-nav__list li { border-top: 1px solid color-mix(in srgb, var(--awkn-ivory) 16%, transparent); }
	.awkn-header .awkn-nav__list a { display: block; padding: .95rem 0; font-size: calc(var(--f) * 1.06); border-bottom: 0; }
	.awkn-header .awkn-nav__list a[aria-current="page"],
	.awkn-header .awkn-nav__list .current-menu-item > a { color: var(--awkn-accent); }
}

/* ===== Hero ===== */

.awkn-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--awkn-navy);
	color: var(--awkn-ivory);
	display: flex;
	align-items: center;
	container: awkn-hero / inline-size;
}
.awkn-hero__media { position: absolute; inset: 0; z-index: -2; }
.awkn-hero__media::after {
	content: ""; position: absolute; inset: 0;
	--ov-a: 92%; --ov-b: 78%; --ov-c: 62%;
	background: linear-gradient(100deg, color-mix(in srgb, var(--awkn-navy) var(--ov-a), transparent) 0%, color-mix(in srgb, var(--awkn-navy) var(--ov-b), transparent) 50%, color-mix(in srgb, var(--awkn-navy) var(--ov-c), transparent) 100%);
}
.awkn-hero--overlay-light .awkn-hero__media::after { --ov-a: 86%; --ov-b: 66%; --ov-c: 46%; }
.awkn-hero--overlay-strong .awkn-hero__media::after { --ov-a: 95%; --ov-b: 86%; --ov-c: 76%; }
.awkn-hero__img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* The ripple: one quiet, distinctive motif, centred on the main copy. */
.awkn-hero__copy { position: relative; isolation: isolate; }
.awkn-hero__rings {
	position: absolute; z-index: -1;
	width: min(40rem, 150vw); height: auto;
	left: 72%; top: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
}
.awkn-hero__rings circle {
	fill: none;
	stroke: var(--awkn-accent);
	stroke-width: 1;
	vector-effect: non-scaling-stroke;
	opacity: calc(.32 - var(--i) * .05);
	transform-origin: 400px 400px;
}
.awkn-hero.has-image .awkn-hero__rings circle { opacity: calc(.24 - var(--i) * .04); }

@media (prefers-reduced-motion: no-preference) {
	body.awkn:not(.awkn-no-motion) .awkn-hero__rings circle {
		animation: awkn-ripple 2.8s var(--awkn-ease) both;
		animation-delay: calc(.25s + var(--i) * .32s);
	}
	body.awkn:not(.awkn-no-motion) .awkn-hero__copy,
	body.awkn:not(.awkn-no-motion) .awkn-hero__text {
		animation: awkn-rise 1.6s var(--awkn-ease) both .2s;
	}
	body.awkn:not(.awkn-no-motion) .awkn-hero__text { animation-delay: .9s; }
}
@keyframes awkn-ripple {
	from { transform: scale(.55); opacity: 0; }
}
@keyframes awkn-rise {
	from { opacity: 0; transform: translateY(12px); }
}

.awkn-hero__inner {
	width: 100%;
	max-width: calc(var(--awkn-wide) + 2 * var(--awkn-gutter));
	margin: 0 auto;
	padding: clamp(3.25rem, 9vh, 5rem) var(--awkn-gutter) clamp(3rem, 8vh, 4.5rem);
	display: grid;
	gap: 2rem;
}
.awkn-hero .awkn-hero__brand {
	font-family: var(--awkn-serif);
	font-size: var(--fs-small);
	letter-spacing: .3em;
	color: var(--awkn-accent);
	margin-bottom: 1.1rem;
}
.awkn-hero .awkn-hero__title {
	font-family: var(--awkn-serif);
	font-weight: 500;
	font-size: clamp(1.9rem, 8.4vw, 2.6rem);
	line-height: 1.55;
	letter-spacing: .08em;
	text-wrap: balance;
	word-break: keep-all; /* the main copy breaks only at 、 */
	overflow-wrap: anywhere;
}
.awkn-hero__sub {
	font-family: var(--awkn-serif);
	font-size: var(--fs-message);
	line-height: 1.85;
	letter-spacing: .07em;
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.awkn-hero .awkn-hero__lead {
	margin-top: 1.5rem;
	font-size: var(--fs-lead);
	line-height: 2;
	letter-spacing: .03em;
	max-width: 30em;
	color: color-mix(in srgb, var(--awkn-ivory) 90%, transparent);
	word-break: auto-phrase; /* phrase-aware wrapping where supported (lang="ja") */
}
@media (min-width: 768px) {
	/* Wide enough for whole clauses: wrap only at 、。 */
	.awkn-hero .awkn-hero__lead { word-break: keep-all; overflow-wrap: anywhere; }
}
.awkn-hero .awkn-hero__link { margin-top: 2rem; }
.awkn-hero__link a {
	display: inline-block;
	font-family: var(--awkn-serif);
	font-size: var(--f);
	letter-spacing: .1em;
	text-decoration: none;
	padding: .35rem 0;
	border-bottom: 1px solid var(--awkn-accent);
	transition: color .2s, border-color .2s;
}
.awkn-hero__link a:hover { color: var(--awkn-accent); }

/* Tall, wide screens: vertical (縦書き) main copy on the right, message on the left,
   both centred vertically. Container query keeps this correct in the block editor too. */
@media (min-width: 960px) and (min-height: 640px) {
	.awkn-hero { min-height: clamp(34rem, calc(100svh - 6rem), 46rem); }
}
@media (min-height: 640px) {
@container awkn-hero (min-width: 940px) {
	.awkn-hero__inner {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		grid-template-areas: "text copy";
		align-items: center;
		gap: 3rem;
	}
	.awkn-hero__copy {
		grid-area: copy;
		justify-self: center;
		display: flex;
		flex-direction: row-reverse;
		align-items: flex-start;
		gap: 2rem;
	}
	.awkn-hero__text { grid-area: text; max-width: 33rem; }
	.awkn-hero .awkn-hero__brand,
	.awkn-hero .awkn-hero__title {
		writing-mode: vertical-rl;
		text-orientation: mixed;
		margin: 0;
	}
	.awkn-hero .awkn-hero__brand { letter-spacing: .45em; }
	.awkn-hero .awkn-hero__title {
		font-size: clamp(2.1rem, 2.9vw, 2.6rem);
		letter-spacing: .16em;
		line-height: 1.9;
	}
	.awkn-hero__rings { left: 50%; width: min(44rem, 52vw); }
}
}

/* ===== Page head (inner pages) ===== */

.awkn-pagehead {
	background: var(--awkn-navy);
	color: var(--awkn-ivory);
	position: relative;
	overflow: hidden;
}
.awkn-pagehead::after {
	/* a single ring echoing the hero, quietly */
	content: "";
	position: absolute;
	width: 34rem; aspect-ratio: 1;
	right: -12rem; top: -16rem;
	border: 1px solid color-mix(in srgb, var(--awkn-accent) 30%, transparent);
	border-radius: 50%;
	pointer-events: none;
}
.awkn-pagehead__inner {
	max-width: calc(var(--awkn-wide) + 2 * var(--awkn-gutter));
	margin: 0 auto;
	padding: clamp(2.75rem, 7vw, 5rem) var(--awkn-gutter) clamp(2.5rem, 5.5vw, 3.75rem);
}
.awkn .awkn-pagehead__title {
	font-family: var(--awkn-serif);
	font-size: var(--fs-title);
	letter-spacing: .04em;
	line-height: 1.2;
	font-weight: 400;
}
.awkn .awkn-pagehead__sub {
	margin-top: .9rem;
	font-size: var(--fs-small);
	letter-spacing: .12em;
	color: var(--awkn-accent);
}

/* ===== Sections (group block styles) ===== */

.wp-block-group.is-style-awkn-ivory,
.wp-block-group.is-style-awkn-white,
.wp-block-group.is-style-awkn-navy,
.wp-block-group.is-style-awkn-indigo {
	padding: var(--awkn-space) var(--awkn-gutter);
	margin: 0;
}
.wp-block-group.is-style-awkn-ivory { background: var(--awkn-ivory); color: var(--awkn-text); }
.wp-block-group.is-style-awkn-white { background: var(--awkn-white); color: var(--awkn-text); }
.wp-block-group.is-style-awkn-navy { background: var(--awkn-navy); color: var(--awkn-ivory); --awkn-muted: color-mix(in srgb, var(--awkn-ivory) 84%, var(--awkn-navy)); --awkn-rule: color-mix(in srgb, var(--awkn-ivory) 24%, transparent); }
.wp-block-group.is-style-awkn-indigo { background: var(--awkn-indigo); color: var(--awkn-ivory); --awkn-muted: color-mix(in srgb, var(--awkn-ivory) 86%, var(--awkn-indigo)); --awkn-rule: color-mix(in srgb, var(--awkn-ivory) 26%, transparent); }
.awkn .awkn-content > .wp-block-group + .wp-block-group { margin-top: 0; }
/* two adjacent bands of the same tone read as one: tighten the seam */
.awkn .is-style-awkn-ivory + .is-style-awkn-ivory,
.awkn .is-style-awkn-white + .is-style-awkn-white { padding-top: 0; }

/* Section-specific rhythm (v1.1): introductions and closing calls are lighter. */
.awkn .wp-block-group.awkn-home-areas,
.awkn .wp-block-group.awkn-home-founder { padding-block: calc(var(--awkn-space) * .9); }
.awkn .wp-block-group.awkn-home-contact { padding-block: calc(var(--awkn-space) * .8); }
.awkn .wp-block-group.is-style-awkn-ivory:has(> .awkn-inner > .awkn-lede--large) { padding-block: calc(var(--awkn-space) * .72); }

.awkn-inner {
	container-type: inline-size; /* layouts below respond to the section width (also in the editor) */
	max-width: var(--awkn-wide);
	margin-inline: auto !important;
}
.awkn .awkn-inner > * { margin-block: 0; }
.awkn .awkn-inner > * + * { margin-block-start: 1.4rem; }
.awkn .awkn-inner > .wp-block-columns,
.awkn .awkn-inner > .awkn-programs-wrap,
.awkn .awkn-inner > .wp-block-buttons { margin-block-start: clamp(1.75rem, 4vw, 2.75rem); }
.awkn-inner > p,
.awkn-inner > .wp-block-heading { max-width: var(--awkn-measure); }

.awkn .wp-block-column > * { margin-block: 0; }
.awkn .wp-block-column > * + * { margin-block-start: 1.25rem; }

/* ===== Type roles ===== */

.awkn-display.wp-block-heading,
.awkn .awkn-display {
	font-family: var(--awkn-head);
	font-size: var(--fs-h-ja);
	line-height: 1.6;
	letter-spacing: .06em;
	font-weight: 500;
}
/* English display headings (class added at render time when the text has no Japanese). */
.awkn .awkn-display.is-latin {
	font-size: var(--fs-h-en);
	line-height: 1.25;
	letter-spacing: .02em;
	font-weight: 400;
}
.awkn-chapter.wp-block-heading,
.awkn .awkn-chapter {
	font-family: var(--awkn-head);
	font-size: var(--fs-chapter);
	line-height: 1.6;
	letter-spacing: .06em;
	font-weight: 500;
}
.awkn-lede { font-size: var(--fs-lead); color: var(--awkn-muted); text-wrap: pretty; word-break: auto-phrase; }
.awkn-lede--large {
	font-family: var(--awkn-head);
	font-size: calc(var(--f) * 1.32);
	line-height: 1.95;
	letter-spacing: .06em;
	color: inherit;
	word-break: auto-phrase;
	max-width: 28em !important;
}
.awkn-muted { color: var(--awkn-muted); font-size: var(--fs-small); line-height: 1.85; }

/* ===== Split layout: heading left, text right ===== */

.wp-block-columns.awkn-split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem 4rem;
}
@container (min-width: 760px) {
	.wp-block-columns.awkn-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	.wp-block-columns.awkn-split--contact { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); }
}
.awkn-split > .wp-block-column { min-width: 0; }
.awkn-split > .wp-block-column > p { max-width: var(--awkn-measure); }

.awkn-split--chapter { padding-block: clamp(2rem, 4vw, 2.75rem); border-top: 1px solid var(--awkn-rule); }
.awkn .awkn-inner > .awkn-split--chapter { margin-block-start: 0; }
.awkn-split--chapter:first-child { border-top: 0; padding-top: 0; }
.awkn-split--chapter:last-child { padding-bottom: 0; }

/* ===== Activity areas ===== */

.wp-block-columns.awkn-areas {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem 2.25rem;
}
@container (min-width: 560px) { .wp-block-columns.awkn-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 960px) { .wp-block-columns.awkn-areas { grid-template-columns: repeat(var(--awkn-area-cols, 4), minmax(0, 1fr)); } }
.awkn-areas:has(> .wp-block-column:nth-child(3):last-child) { --awkn-area-cols: 3; }

.awkn-area {
	border-top: 1px solid var(--awkn-accent);
	padding-top: 1.25rem;
	height: 100%;
	position: relative;
}
.awkn .awkn-area > * { margin: 0; }
.awkn .awkn-area > * + * { margin-top: .65rem; }
.awkn-area__title.wp-block-heading,
.awkn .awkn-area__title {
	font-family: var(--awkn-serif);
	font-size: var(--fs-h3);
	letter-spacing: .02em;
	line-height: 1.35;
	color: var(--awkn-indigo);
}
.is-style-awkn-navy .awkn-area__title, .is-style-awkn-indigo .awkn-area__title { color: inherit; }
.awkn-area__title a { text-decoration: none; }
.awkn-area__title a::after { content: ""; position: absolute; inset: 0; }
.awkn-area:hover .awkn-area__title a,
.awkn-area__title a:focus-visible { text-decoration: underline; text-decoration-color: var(--awkn-accent); }
.awkn-area__lead { font-family: var(--awkn-head); font-size: var(--fs-lead); letter-spacing: .08em; }
.awkn-area p:not(.awkn-area__lead) { font-size: var(--fs-desc); color: var(--awkn-muted); line-height: 1.85; }

/* ===== Programs (an index, not a card grid) ===== */

.awkn-programs-wrap + .awkn-programs-wrap { margin-top: clamp(3rem, 6vw, 4.5rem); }
.awkn-programs__head { margin-bottom: 1.25rem; max-width: var(--awkn-measure); }
.awkn .awkn-programs__title {
	font-family: var(--awkn-head);
	font-size: var(--fs-chapter);
	letter-spacing: .05em;
	scroll-margin-top: 2rem;
}
.awkn .awkn-programs__desc { margin-top: .4rem; color: var(--awkn-muted); font-size: var(--fs-desc); text-wrap: pretty; }

.awkn-programs { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--awkn-rule); }
.awkn-program {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	padding: 1.5rem 0;
	border-top: 1px solid var(--awkn-rule);
	margin: 0;
}
.awkn-program.has-image { grid-template-columns: 5.5rem minmax(0, 1fr); }
.awkn-program__figure { margin: 0; aspect-ratio: 1; overflow: hidden; background: var(--awkn-ivory); }
.awkn-program__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.awkn-program__body { display: grid; gap: .5rem; min-width: 0; }
.awkn-program__head > * { margin: 0; }
.awkn .awkn-program__name {
	font-family: var(--awkn-serif);
	font-size: calc(var(--f) * 1.45);
	letter-spacing: .02em;
	line-height: 1.4;
	font-weight: 500;
	margin: 0;
	word-break: keep-all; /* keep Japanese names whole (e.g. 有限会社トランスミュート) */
	overflow-wrap: anywhere;
	text-wrap: pretty;
}
.awkn-program__name a { text-decoration: none; }
.awkn-program__name a:hover { text-decoration: underline; text-decoration-color: var(--awkn-accent); text-decoration-thickness: 1px; }
.awkn .awkn-program__en { margin-top: .15rem; font-family: var(--awkn-serif); font-size: var(--fs-small); letter-spacing: .08em; color: var(--awkn-muted); }
.awkn-program__desc { color: var(--awkn-muted); font-size: var(--fs-desc); line-height: 1.9; margin: 0; max-width: 34em; }
.awkn-program__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; font-size: var(--fs-small); }
.awkn-program__link {
	font-family: var(--awkn-serif);
	font-size: var(--fs-desc);
	letter-spacing: .06em;
	text-decoration: none;
	color: var(--awkn-indigo);
	border-bottom: 1px solid var(--awkn-accent);
	padding: .2rem 0;
}
.awkn-program__link::after { content: " ↗"; font-family: var(--awkn-sans); font-size: .85em; }
.awkn-program__link:hover { color: var(--awkn-navy); border-bottom-width: 2px; }
.is-style-awkn-navy .awkn-program__link, .is-style-awkn-indigo .awkn-program__link { color: inherit; }
.awkn-program__host { font-size: calc(var(--f) * .8); color: var(--awkn-muted); letter-spacing: .02em; }
.awkn-program__status {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font-size: var(--fs-small);
	letter-spacing: .1em;
	color: var(--awkn-text);
	border: 1px solid color-mix(in srgb, var(--awkn-indigo-light) 55%, transparent);
	border-radius: 999px;
	padding: .1rem .8rem .1rem .65rem;
	line-height: 1.8;
	white-space: nowrap;
}
.awkn-program__status::before {
	content: "";
	width: .45rem; height: .45rem;
	border-radius: 50%;
	border: 1px solid var(--awkn-indigo-light);
}

@container (min-width: 760px) {
	.awkn-program__body {
		grid-template-columns: minmax(12rem, 3.4fr) minmax(0, 5.6fr) minmax(9rem, 2fr);
		align-items: baseline;
		gap: 2rem;
	}
	.awkn-program__meta { flex-direction: column; align-items: flex-start; gap: .1rem; justify-self: start; }
	.awkn-program.has-image { grid-template-columns: 6.5rem minmax(0, 1fr); align-items: center; gap: 1.75rem; }
}

/* Related activities (e.g. Technology & Business Development) — a quiet row under the list.
   Each item uses the same .awkn-program / .awkn-program__body markup, so it shares the
   programs' 3-column grid exactly (no separate column sizes or offsets). */
.awkn-related { list-style: none; margin: 0; padding: 0; }
.awkn-related > .awkn-program { border-top: 0; padding-bottom: 0; }
.awkn .awkn-related__label { margin: 0; font-size: var(--fs-small); letter-spacing: .1em; color: var(--awkn-muted); }
.awkn-related .awkn-program__link { font-size: var(--fs-small); letter-spacing: .03em; word-break: keep-all; overflow-wrap: anywhere; }
.awkn-related .awkn-program__link::after { content: "\00a0↗"; } /* keep the arrow with the last word */
.awkn-related__name { font-family: var(--awkn-serif); font-size: var(--fs-small); }
@container (max-width: 759px) {
	.awkn-related .awkn-program__desc:empty, .awkn-related .awkn-program__head:empty { display: none; }
}

/* ===== Photo band (ABOUT etc.) ===== */

.awkn-photo { margin: 0; position: relative; background: var(--awkn-navy); }
.awkn-photo__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
@media (min-width: 768px) {
	.awkn-photo__img { aspect-ratio: 21 / 8; max-height: 68vh; }
}
.awkn-photo__caption {
	max-width: calc(var(--awkn-wide) + 2 * var(--awkn-gutter));
	margin: 0 auto;
	padding: .75rem var(--awkn-gutter);
	font-size: var(--fs-small);
	color: color-mix(in srgb, var(--awkn-ivory) 86%, var(--awkn-navy));
}

/* ===== Person / profile ===== */

.awkn-person { display: grid; gap: 1.4rem; align-items: end; }
.awkn-person__photo { margin: 0; max-width: 20rem; }
.awkn-person__img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.awkn .awkn-person__name { font-family: var(--awkn-serif); font-size: calc(var(--f) * 1.6); letter-spacing: .12em; line-height: 1.5; }
.awkn .awkn-person__en { font-family: var(--awkn-serif); font-size: var(--fs-small); letter-spacing: .12em; color: var(--awkn-muted); }
.awkn .awkn-person__title { margin-top: .5rem; font-size: var(--fs-desc); color: var(--awkn-muted); letter-spacing: .04em; }
.awkn .awkn-person__summary { margin-top: 1.2rem; max-width: var(--awkn-measure); line-height: 1.95; }
.awkn-person__text > * { margin: 0; }
@container (min-width: 760px) {
	.awkn-person--header.has-photo { grid-template-columns: minmax(0, 19rem) minmax(0, 1fr); gap: 3.5rem; }
}

.awkn-founder.wp-block-columns { display: grid; grid-template-columns: 1fr; gap: 2.5rem 4.5rem; align-items: center; }
@container (min-width: 760px) {
	.awkn-founder.wp-block-columns:has(> .wp-block-column:nth-child(2)) { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); }
}
.awkn-founder .awkn-person__photo { max-width: 18rem; }
.awkn-founder .wp-block-column > p { max-width: var(--awkn-measure); }

.awkn-profile-section { padding-block: clamp(2rem, 4vw, 2.75rem); border-top: 1px solid var(--awkn-rule); display: grid; gap: 1rem 4rem; }
.awkn-profile-body .awkn-inner > .awkn-profile-section { margin-block-start: 0; }
.awkn-profile-body .awkn-inner > .awkn-profile-section:first-child { border-top: 0; padding-top: 0; }
@container (min-width: 760px) {
	.awkn-profile-section { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
.awkn-profile-section__body { max-width: var(--awkn-measure); }
.awkn-profile-section__body > * { margin: 0 0 1.1em; }
.awkn-profile-section__body > :last-child { margin-bottom: 0; }
.awkn-profile-section__body ul { padding-left: 1.2em; }

.awkn-pubs, .awkn-links { list-style: none; margin: 0; padding: 0; }
.awkn-pubs li { padding: .9rem 0; border-bottom: 1px solid var(--awkn-rule); display: grid; gap: .2rem; }
.awkn-pubs li:first-child { padding-top: 0; }
.awkn-pub__title { font-family: var(--awkn-serif); letter-spacing: .04em; }
.awkn-pub__meta { font-size: var(--fs-small); color: var(--awkn-muted); }
.awkn-links { display: flex; flex-wrap: wrap; gap: .75rem 2rem; }
.awkn-links a { text-decoration-color: var(--awkn-accent); }

/* ===== Buttons (core/button "Awakener 線のリンク") ===== */

.awkn .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 1rem 1.25rem; }
.wp-block-button.is-style-awkn-line .wp-block-button__link,
.awkn .wp-block-button.is-style-awkn-line .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .9rem;
	min-height: 48px;
	background: transparent;
	color: inherit;
	border: 1px solid currentColor;
	border-radius: 1px;
	padding: .8em 1.6em;
	font-family: var(--awkn-serif);
	font-size: var(--fs-desc);
	font-weight: 400;
	letter-spacing: .1em;
	line-height: 1.4;
	text-decoration: none;
	box-shadow: none;
	transition: background-color .25s, color .25s, border-color .25s;
}
.wp-block-button.is-style-awkn-line .wp-block-button__link::after {
	content: "";
	width: 1.4rem; height: 1px;
	background: var(--awkn-accent);
	transition: width .25s var(--awkn-ease);
}
.wp-block-button.is-style-awkn-line .wp-block-button__link:hover { background: var(--awkn-navy); color: var(--awkn-ivory); border-color: var(--awkn-navy); }
.wp-block-button.is-style-awkn-line .wp-block-button__link:hover::after { width: 2rem; }
.is-style-awkn-navy .wp-block-button.is-style-awkn-line .wp-block-button__link:hover,
.is-style-awkn-indigo .wp-block-button.is-style-awkn-line .wp-block-button__link:hover { background: var(--awkn-ivory); color: var(--awkn-navy); border-color: var(--awkn-ivory); }

/* ===== Form ===== */

.awkn-form { display: grid; gap: 1.5rem; max-width: 40rem; }
.awkn-field { display: grid; gap: .45rem; }
.awkn-field label { font-size: calc(var(--f) * .95); font-weight: 600; letter-spacing: .04em; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.awkn-req, .awkn-opt { font-size: calc(var(--f) * .74); font-weight: 600; letter-spacing: .08em; padding: 0 .55rem; border: 1px solid currentColor; line-height: 1.7; }
.awkn-req { color: var(--awkn-indigo); }
.awkn-opt { color: var(--awkn-muted); font-weight: 400; }
.awkn-form input[type="text"],
.awkn-form input[type="email"],
.awkn-form select,
.awkn-form textarea {
	width: 100%;
	min-height: 52px;
	font: inherit;
	font-size: max(16px, var(--f));
	letter-spacing: .02em;
	color: var(--awkn-text);
	background: var(--awkn-white);
	border: 1px solid color-mix(in srgb, var(--awkn-indigo-light) 70%, transparent);
	border-radius: 2px;
	padding: .75rem .9rem;
	line-height: 1.7;
	transition: border-color .2s, box-shadow .2s;
}
.awkn-form select { appearance: auto; }
.awkn-form textarea { resize: vertical; min-height: 13rem; }
.awkn-form input:focus, .awkn-form select:focus, .awkn-form textarea:focus {
	outline: none; border-color: var(--awkn-indigo); box-shadow: 0 0 0 3px color-mix(in srgb, var(--awkn-indigo) 24%, transparent);
}
.awkn-form [aria-invalid="true"] { border-color: #9B2C24; border-width: 2px; }
.awkn-field__error { color: #9B2C24; font-size: var(--fs-small); font-weight: 600; margin: 0; }
.awkn-form__alert { border-left: 3px solid #9B2C24; background: color-mix(in srgb, #9B2C24 6%, var(--awkn-white)); padding: 1rem 1.25rem; font-size: var(--fs-desc); color: var(--awkn-text); }
.awkn-form__privacy { font-size: var(--fs-small); color: var(--awkn-muted); line-height: 1.85; }
.awkn-form__privacy a { color: var(--awkn-indigo); }
.awkn-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.awkn-button {
	appearance: none;
	min-height: 52px;
	background: var(--awkn-navy);
	color: var(--awkn-ivory);
	border: 1px solid var(--awkn-navy);
	border-radius: 1px;
	padding: .8em 3em;
	font-family: var(--awkn-serif);
	font-size: var(--f);
	letter-spacing: .16em;
	cursor: pointer;
	transition: background-color .25s, color .25s;
}
.awkn-button:hover { background: var(--awkn-indigo); border-color: var(--awkn-indigo); }
@media (max-width: 767px) { .awkn-button { width: 100%; } }
.awkn-form-done { border-top: 1px solid var(--awkn-accent); padding-top: 1.5rem; max-width: 36rem; }
.awkn-form-done:focus { outline: none; }
.awkn .awkn-form-done__title { font-family: var(--awkn-serif); font-size: var(--fs-chapter); letter-spacing: .08em; margin-bottom: 1rem; }

/* ===== Prose pages (privacy etc.) ===== */

.awkn-prose .awkn-inner { max-width: 44rem; }
.awkn .awkn-prose .awkn-chapter { margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid var(--awkn-rule); font-size: calc(var(--f) * 1.3); }
.awkn .wp-block-list { padding-left: 1.4em; }
.awkn .wp-block-separator { border: 0; border-top: 1px solid var(--awkn-rule); margin-block: 2.25rem; opacity: 1; }

/* ===== Footer ===== */

.awkn-footer { background: var(--awkn-navy); color: color-mix(in srgb, var(--awkn-ivory) 86%, transparent); font-size: var(--fs-small); }
.awkn-footer__inner {
	max-width: calc(var(--awkn-wide) + 2 * var(--awkn-gutter));
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 4rem) var(--awkn-gutter) 2.25rem;
	display: grid;
	gap: 2rem;
}
.awkn-footer__name { font-family: var(--awkn-serif); font-size: calc(var(--f) * 1.25); letter-spacing: .2em; text-decoration: none; color: var(--awkn-ivory); }
.awkn .awkn-footer__copy { margin-top: .6rem; font-family: var(--awkn-serif); letter-spacing: .1em; }
.awkn-footer .awkn-nav__list { flex-wrap: wrap; gap: .25rem 1.75rem; }
.awkn-footer .awkn-nav__list a { font-size: var(--fs-small); padding: .35rem 0; }
.awkn .awkn-footer__privacy { margin-top: .5rem; }
.awkn-footer__privacy a { text-decoration-color: color-mix(in srgb, var(--awkn-ivory) 45%, transparent); }
.awkn-footer__legal { font-size: calc(var(--f) * .78); letter-spacing: .08em; color: color-mix(in srgb, var(--awkn-ivory) 72%, transparent); padding-top: 1.25rem; border-top: 1px solid color-mix(in srgb, var(--awkn-ivory) 16%, transparent); }
@media (min-width: 860px) {
	.awkn-footer__inner { grid-template-columns: 1fr auto; align-items: start; }
	.awkn-footer__nav { text-align: right; }
	.awkn-footer .awkn-nav__list { justify-content: flex-end; }
	.awkn-footer__legal { grid-column: 1 / -1; }
}

/* Editor-only helpers never show on the public page. */
body.awkn .awkn-editor-note, body.awkn .awkn-editor-hint { display: none; }

@media (prefers-reduced-motion: reduce) {
	.awkn *, .awkn *::before, .awkn *::after { transition: none !important; animation: none !important; }
}

@media print {
	.awkn-header, .awkn-footer, .awkn-hero__rings, .awkn-nav-toggle { display: none; }
	.wp-block-group.is-style-awkn-navy, .wp-block-group.is-style-awkn-indigo, .awkn-hero, .awkn-pagehead { background: none; color: #000; }
}

@media (max-width: 767px) {
	/* On narrow screens phrase-wrapping long introductions makes ragged lines; use normal wrapping. */
	.awkn .awkn-lede--large, .awkn .awkn-lede { word-break: normal; }
}
