:root {
	--iroha-green: #68b948;
	--iroha-lightgreen: #85b83d;
	--iroha-brown: #5b4028;
	--iroha-dark: #2c1e14;
	--iroha-cream: #fdfbf7;
	--iroha-softgreen: #f4f9f1;
	--iroha-line: #06c755;
	--iroha-white: #fff;
	--iroha-stone-50: #fafaf9;
	--iroha-stone-100: #f5f5f4;
	--iroha-stone-200: #e7e5e4;
	--iroha-stone-400: #a8a29e;
	--iroha-stone-500: #78716c;
	--iroha-stone-600: #57534e;
	--iroha-shadow: 0 14px 40px rgba(44, 30, 20, .09);
	--iroha-radius: 18px;
	--iroha-container: 1180px;
}

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body.iroha-site {
	margin: 0;
	background: var(--iroha-cream);
	color: var(--iroha-dark);
	font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
}

body.iroha-site img {
	display: block;
	max-width: 100%;
	height: auto;
}

body.iroha-site a {
	color: inherit;
	text-decoration: none;
}

body.iroha-site button,
body.iroha-site input,
body.iroha-site textarea {
	font: inherit;
}

.iroha-container {
	width: min(calc(100% - 40px), var(--iroha-container));
	margin-inline: auto;
}

.iroha-container--narrow {
	max-width: 900px;
}

.iroha-icon {
	width: 1.15em;
	height: 1.15em;
	flex: 0 0 auto;
}

.screen-reader-text,
.iroha-skip-link {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.iroha-skip-link:focus {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 99999;
	width: auto;
	height: auto;
	padding: 10px 16px;
	margin: 0;
	clip: auto;
	background: #fff;
	border: 2px solid var(--iroha-green);
	border-radius: 8px;
}

.iroha-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 11px 22px;
	border: 1px solid transparent;
	border-radius: 12px;
	font-size: .9rem;
	font-weight: 700;
	line-height: 1.35;
	box-shadow: 0 7px 16px rgba(44, 30, 20, .08);
	transition: transform .2s ease, opacity .2s ease, background-color .2s ease, border-color .2s ease;
}

.iroha-button:hover {
	transform: translateY(-2px);
}

.iroha-button:focus-visible,
.iroha-global-nav a:focus-visible,
.iroha-mobile-menu a:focus-visible {
	outline: 3px solid rgba(104, 185, 72, .5);
	outline-offset: 3px;
}

.iroha-button--large {
	min-height: 56px;
	padding: 14px 28px;
	font-size: 1rem;
}

.iroha-button--line {
	background: var(--iroha-line);
	color: #fff !important;
}

.iroha-button--brown {
	background: var(--iroha-brown);
	color: #fff !important;
}

.iroha-button--white {
	background: #fff;
	color: var(--iroha-brown) !important;
	border-color: var(--iroha-stone-200);
}

.iroha-button--outline {
	background: #fff;
	color: var(--iroha-brown) !important;
	border: 2px solid var(--iroha-green);
}

.iroha-button--ghost {
	background: rgba(255, 255, 255, .1);
	color: #fff !important;
	border-color: rgba(255, 255, 255, .16);
	box-shadow: none;
}

.iroha-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 25px;
}

.iroha-button-row--center {
	justify-content: center;
}

.iroha-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, .98);
	border-bottom: 1px solid var(--iroha-stone-100);
	box-shadow: 0 4px 18px rgba(44, 30, 20, .05);
}

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

.iroha-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 80px;
	gap: 24px;
}

.iroha-brand {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	min-width: 0;
}

.iroha-brand__logo .custom-logo-link {
	display: flex;
}

.iroha-brand__logo img {
	width: auto;
	max-width: 220px;
	max-height: 58px;
}

.iroha-brand__text {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}

.iroha-brand__text strong {
	color: var(--iroha-brown);
	font-size: 1.25rem;
	letter-spacing: .08em;
}

.iroha-brand__text small {
	margin-top: 5px;
	color: var(--iroha-lightgreen);
	font-size: .56rem;
	font-weight: 700;
	letter-spacing: .18em;
}

.iroha-brand__note {
	display: flex;
	flex-direction: column;
	padding-left: 16px;
	border-left: 1px solid var(--iroha-stone-200);
	line-height: 1.45;
}

.iroha-brand__note small {
	color: var(--iroha-stone-500);
	font-size: .66rem;
}

.iroha-brand__note strong {
	color: var(--iroha-brown);
	font-size: .73rem;
}

.iroha-header__actions {
	display: flex;
	gap: 12px;
}

.iroha-header__actions .iroha-button {
	padding-inline: 17px;
}

.iroha-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: var(--iroha-brown);
	background: var(--iroha-softgreen);
	border: 0;
	border-radius: 10px;
	cursor: pointer;
}

.iroha-menu-toggle svg {
	width: 25px;
	height: 25px;
}

.iroha-menu-toggle__close {
	display: none;
}

.iroha-menu-toggle[aria-expanded="true"] .iroha-menu-toggle__open {
	display: none;
}

.iroha-menu-toggle[aria-expanded="true"] .iroha-menu-toggle__close {
	display: flex;
}

.iroha-global-nav {
	background: var(--iroha-softgreen);
	border-top: 1px solid var(--iroha-stone-100);
}

.iroha-global-nav ul {
	display: grid;
	grid-template-columns: repeat(9, minmax(0, 1fr));
	padding: 0;
	margin: 0;
	list-style: none;
}

.iroha-global-nav li {
	min-width: 0;
	text-align: center;
}

.iroha-global-nav a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 43px;
	padding: 8px 5px;
	color: var(--iroha-brown);
	border-bottom: 2px solid transparent;
	font-size: .73rem;
	font-weight: 700;
	line-height: 1.35;
}

.iroha-global-nav a:hover {
	background: #fff;
	border-bottom-color: var(--iroha-green);
	color: var(--iroha-green);
}

.iroha-mobile-menu {
	position: absolute;
	top: 80px;
	left: 0;
	width: 100%;
	max-height: calc(100vh - 80px);
	overflow: auto;
	background: #fff;
	border-top: 1px solid var(--iroha-stone-100);
	box-shadow: 0 18px 30px rgba(44, 30, 20, .12);
}

.iroha-mobile-menu ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

.iroha-mobile-menu li + li {
	border-top: 1px solid var(--iroha-stone-100);
}

.iroha-mobile-menu li a {
	display: block;
	padding: 12px 22px;
	color: var(--iroha-brown);
	font-size: .9rem;
	font-weight: 700;
}

.iroha-mobile-menu__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 9px;
	padding: 14px 20px 18px;
	background: var(--iroha-softgreen);
}

.iroha-main {
	min-height: 55vh;
}

.iroha-section {
	padding: 78px 0;
	border-bottom: 1px solid var(--iroha-stone-100);
}

.iroha-section--white {
	background: #fff;
}

.iroha-section--softgreen {
	background: var(--iroha-softgreen);
}

.iroha-section--cream {
	background: var(--iroha-cream);
}

.iroha-section-heading {
	max-width: 780px;
	margin: 0 auto 44px;
	text-align: center;
}

.iroha-section-heading h2,
.iroha-split__copy h2,
.iroha-director h2,
.iroha-common-cta h2 {
	margin: 0;
	color: var(--iroha-brown);
	font-size: clamp(1.7rem, 3vw, 2.25rem);
	line-height: 1.45;
	letter-spacing: .02em;
}

.iroha-section-heading > p:last-child {
	margin: 15px auto 0;
	color: var(--iroha-stone-600);
	font-size: .94rem;
	line-height: 1.9;
}

.iroha-kicker {
	margin: 0 0 10px;
	color: var(--iroha-green);
	font-size: .79rem;
	font-weight: 800;
	letter-spacing: .13em;
}

.iroha-hero {
	position: relative;
	min-height: 650px;
	overflow: hidden;
	background: #56765b;
	isolation: isolate;
}

.iroha-hero__picture,
.iroha-hero__picture img,
.iroha-hero__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.iroha-hero__picture {
	z-index: -3;
}

.iroha-hero__picture img {
	object-fit: cover;
	object-position: center;
}

.iroha-hero--left .iroha-hero__picture img {
	object-position: left center;
}

.iroha-hero--right .iroha-hero__picture img {
	object-position: right center;
}

.iroha-hero__overlay {
	z-index: -2;
	background:
		linear-gradient(90deg, rgba(49, 91, 61, .86) 0%, rgba(88, 139, 80, .62) 46%, rgba(238, 247, 232, .18) 100%),
		linear-gradient(0deg, rgba(231, 243, 225, .12), transparent 48%, rgba(53, 94, 59, .38));
}

.iroha-hero__inner {
	display: flex;
	align-items: center;
	min-height: 650px;
	padding-top: 68px;
	padding-bottom: 68px;
}

.iroha-hero__content {
	width: min(720px, 100%);
	color: #fff;
}

.iroha-hero__location {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 14px;
	margin: 0;
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: 999px;
	backdrop-filter: blur(6px);
	font-size: .83rem;
	font-weight: 700;
}

.iroha-hero__location svg {
	color: #c1e786;
}

.iroha-hero h1 {
	margin: 22px 0 0;
	color: #fff;
	font-size: clamp(2.25rem, 5.2vw, 3.6rem);
	line-height: 1.38;
	letter-spacing: .04em;
	text-shadow: 0 3px 14px rgba(31, 45, 33, .35);
}

.iroha-hero h1 span,
.iroha-hero h1 strong {
	display: block;
}

.iroha-hero h1 strong {
	color: #b9e87d;
	font-weight: 800;
}

.iroha-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0;
	margin: 23px 0 0;
	list-style: none;
}

.iroha-hero__badges li {
	padding: 6px 11px;
	background: rgba(255, 255, 255, .95);
	border-radius: 6px;
	box-shadow: 0 3px 9px rgba(0, 0, 0, .08);
	color: var(--iroha-brown);
	font-size: .75rem;
	font-weight: 800;
	line-height: 1.35;
}

.iroha-hero__hours {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	padding: 12px 16px;
	margin-top: 24px;
	background: rgba(255, 255, 255, .87);
	border: 1px solid rgba(255, 255, 255, .7);
	border-radius: 12px;
	box-shadow: 0 7px 18px rgba(44, 30, 20, .12);
	color: var(--iroha-brown);
	font-size: .78rem;
	backdrop-filter: blur(6px);
}

.iroha-hero__hours span,
.iroha-hero__hours a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.iroha-hero__hours svg {
	color: var(--iroha-lightgreen);
}

.iroha-hero__hours a {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.iroha-challenges-card {
	padding: 34px 40px;
	background: #fff;
	border: 1px solid var(--iroha-stone-200);
	border-radius: var(--iroha-radius);
	box-shadow: var(--iroha-shadow);
}

.iroha-challenges-card ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px 26px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.iroha-challenges-card li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--iroha-stone-600);
	font-size: .93rem;
}

.iroha-challenges-card li span {
	display: flex;
	padding: 5px;
	margin-top: 3px;
	background: #fff1f2;
	border: 1px solid #fecdd3;
	border-radius: 50%;
	color: #f43f5e;
}

.iroha-challenges-card li svg {
	width: 14px;
	height: 14px;
}

.iroha-challenges-card > p {
	padding-top: 24px;
	margin: 28px 0 0;
	border-top: 1px solid var(--iroha-stone-200);
	color: var(--iroha-brown);
	font-weight: 700;
	text-align: center;
}

.iroha-mission-copy {
	max-width: 780px;
	margin: 0 auto 40px;
	color: var(--iroha-stone-600);
	font-size: .95rem;
	text-align: center;
}

.iroha-mission-copy p {
	margin: 0 0 17px;
}

.iroha-mission-copy__quote {
	padding: 13px 18px;
	background: var(--iroha-softgreen);
	border-radius: 11px;
	color: var(--iroha-brown);
	font-weight: 800;
	line-height: 1.75;
}

.iroha-mission-points {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	padding: 0;
	margin: 0;
	list-style: none;
	counter-reset: iroha-mission;
}

.iroha-mission-points li {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 185px;
	padding: 25px 14px 20px;
	background: var(--iroha-cream);
	border: 1px solid var(--iroha-stone-200);
	border-radius: 14px;
	text-align: center;
}

.iroha-mission-points__number {
	position: absolute;
	top: 14px;
	left: 50%;
	display: grid;
	width: 27px;
	height: 27px;
	place-items: center;
	transform: translateX(-50%);
	background: var(--iroha-green);
	border-radius: 50%;
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
}

.iroha-mission-points svg {
	width: 27px;
	height: 27px;
	margin: 25px 0 10px;
	color: var(--iroha-green);
}

.iroha-mission-points strong {
	font-size: .81rem;
	line-height: 1.55;
}

.iroha-services-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 18px;
}

.iroha-service-card {
	display: flex;
	grid-column: span 2;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--iroha-stone-100);
	border-radius: 17px;
	box-shadow: 0 7px 22px rgba(44, 30, 20, .07);
}

.iroha-service-card:nth-child(4) {
	grid-column: 2 / span 2;
}

.iroha-service-card:nth-child(5) {
	grid-column: 4 / span 2;
}

.iroha-service-card__body {
	padding: 25px;
}

.iroha-service-card__title {
	display: flex;
	align-items: center;
	gap: 12px;
}

.iroha-service-card__title > span {
	display: grid;
	flex: 0 0 auto;
	width: 39px;
	height: 39px;
	place-items: center;
	background: var(--iroha-green);
	border-radius: 10px;
	color: #fff;
}

.iroha-service-card__title h3 {
	margin: 0;
	color: var(--iroha-brown);
	font-size: 1.05rem;
	line-height: 1.5;
}

.iroha-service-card p {
	margin: 17px 0 0;
	color: var(--iroha-stone-600);
	font-size: .87rem;
}

.iroha-service-card > a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	margin: 0 25px 25px;
	padding: 9px 12px;
	background: var(--iroha-cream);
	border: 1px solid var(--iroha-stone-200);
	border-radius: 9px;
	color: var(--iroha-brown);
	font-size: .76rem;
	font-weight: 800;
	text-align: center;
}

.iroha-split {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: center;
	gap: 46px;
}

.iroha-split--first .iroha-split__copy {
	grid-column: span 5;
}

.iroha-split--first .iroha-split__image {
	grid-column: span 7;
}

.iroha-split__copy > p:not(.iroha-kicker):not(.iroha-emphasis) {
	margin: 17px 0 0;
	color: var(--iroha-stone-600);
	font-size: .94rem;
}

.iroha-split__image {
	padding: 13px;
	margin: 0;
	background: var(--iroha-cream);
	border: 1px solid var(--iroha-stone-200);
	border-radius: 18px;
	box-shadow: 0 8px 24px rgba(44, 30, 20, .06);
}

.iroha-split__image img {
	width: 100%;
	min-height: 330px;
	object-fit: cover;
	border-radius: 13px;
}

.iroha-facilities-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.iroha-facility-card {
	padding: 8px;
	margin: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--iroha-stone-200);
	border-radius: 13px;
	box-shadow: 0 5px 15px rgba(44, 30, 20, .05);
}

.iroha-facility-card img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 9px;
}

.iroha-facility-card figcaption {
	padding: 9px 6px 4px;
	color: var(--iroha-brown);
	font-size: .72rem;
	font-weight: 800;
	line-height: 1.45;
	text-align: center;
}

.iroha-facility-card figcaption span {
	color: var(--iroha-green);
}

.iroha-split--exercise .iroha-exercise-image {
	grid-column: span 6;
}

.iroha-split--exercise .iroha-split__copy {
	grid-column: span 6;
}

.iroha-exercise-image {
	position: relative;
	padding: 0;
	margin: 0;
	overflow: hidden;
	border: 7px solid var(--iroha-cream);
	border-radius: 20px;
	box-shadow: var(--iroha-shadow);
}

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

.iroha-exercise-image figcaption {
	position: absolute;
	right: 18px;
	bottom: 18px;
	left: 18px;
	padding: 9px 12px;
	background: rgba(255, 255, 255, .94);
	border-radius: 9px;
	color: var(--iroha-brown);
	font-size: .75rem;
	font-weight: 800;
}

.iroha-emphasis {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 17px 18px;
	margin: 21px 0 0;
	background: var(--iroha-green);
	border-radius: 11px;
	color: #fff;
}

.iroha-emphasis svg {
	width: 24px;
	height: 24px;
}

.iroha-voices .iroha-section-heading {
	margin-bottom: 25px;
}

.iroha-instagram {
	display: grid;
	grid-template-columns: 5fr 7fr;
	align-items: center;
	gap: 50px;
}

.iroha-instagram__copy h2 {
	margin: 0;
	color: var(--iroha-brown);
	font-size: clamp(1.7rem, 3vw, 2.25rem);
}

.iroha-instagram__copy > p:not(.iroha-kicker) {
	color: var(--iroha-stone-600);
}

.iroha-instagram__fallback {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.iroha-instagram__fallback img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border: 1px solid var(--iroha-stone-200);
	border-radius: 10px;
}

.iroha-director {
	display: grid;
	grid-template-columns: 5fr 7fr;
	align-items: center;
	max-width: 900px;
	gap: 48px;
}

.iroha-director figure {
	position: relative;
	width: min(290px, 100%);
	aspect-ratio: 1;
	margin: 0 auto;
	overflow: hidden;
	background: var(--iroha-stone-100);
	border: 5px solid #fff;
	border-radius: 50%;
	box-shadow: 0 12px 28px rgba(44, 30, 20, .11);
}

.iroha-director figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.iroha-director figcaption {
	position: absolute;
	right: 0;
	bottom: 12px;
	left: 0;
	width: max-content;
	max-width: 85%;
	padding: 4px 12px;
	margin: auto;
	background: var(--iroha-brown);
	border-radius: 999px;
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
	text-align: center;
}

.iroha-director > div > p:not(.iroha-kicker) {
	color: var(--iroha-stone-600);
}

.iroha-access__cta,
.iroha-common-cta__box {
	max-width: 760px;
	padding: 30px;
	margin: 0 auto 48px;
	background: var(--iroha-softgreen);
	border: 2px solid rgba(104, 185, 72, .2);
	border-radius: var(--iroha-radius);
	text-align: center;
}

.iroha-access__cta p {
	margin: 0;
	color: var(--iroha-stone-600);
	font-size: .9rem;
}

.iroha-access__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: 42px;
}

.iroha-access__facts dl {
	margin: 0;
}

.iroha-access__facts dl > div {
	padding: 0 0 14px;
	margin: 0 0 14px;
	border-bottom: 1px solid var(--iroha-stone-200);
}

.iroha-access__facts dt {
	margin-bottom: 4px;
	color: var(--iroha-stone-400);
	font-size: .72rem;
	font-weight: 800;
}

.iroha-access__facts dd {
	margin: 0;
	color: var(--iroha-stone-600);
}

.iroha-access__facts dd strong {
	color: var(--iroha-brown);
}

.iroha-access__hours {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.iroha-access__hours > div {
	padding: 15px;
	background: var(--iroha-softgreen);
	border: 1px solid rgba(104, 185, 72, .2);
	border-radius: 10px;
}

.iroha-access__hours > div:nth-child(2) {
	background: var(--iroha-cream);
	border-color: var(--iroha-stone-200);
}

.iroha-access__hours span,
.iroha-access__hours strong {
	display: block;
}

.iroha-access__hours span {
	color: var(--iroha-stone-500);
	font-size: .72rem;
}

.iroha-access__hours strong {
	color: var(--iroha-brown);
	font-size: 1.2rem;
}

.iroha-access__facts > p {
	color: var(--iroha-stone-500);
	font-size: .76rem;
}

.iroha-access__map iframe {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	border: 0;
	border-radius: 18px;
	box-shadow: var(--iroha-shadow);
}

.iroha-access__map > a {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 10px;
	color: var(--iroha-green);
	font-size: .8rem;
	font-weight: 800;
}

.iroha-footer {
	padding: 52px 0 25px;
	background: var(--iroha-brown);
	color: #fff;
}

.iroha-footer__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 45px;
}

.iroha-footer__logo {
	display: inline-flex;
	flex-direction: column;
	padding: 9px 13px;
	background: #fff;
	border-radius: 9px;
	color: var(--iroha-brown);
	line-height: 1.3;
}

.iroha-footer__logo small {
	margin-top: 3px;
	color: var(--iroha-green);
	font-size: .55rem;
	font-weight: 800;
	letter-spacing: .15em;
}

.iroha-footer__brand p {
	margin: 12px 0 0;
	color: #d6d3d1;
	font-size: .78rem;
}

.iroha-footer__heading {
	padding-bottom: 9px;
	margin: 0 0 15px;
	border-bottom: 1px solid rgba(255, 255, 255, .13);
	color: #fff;
	font-size: .9rem;
}

.iroha-footer__facts {
	padding: 0;
	margin: 0;
	list-style: none;
}

.iroha-footer__facts li {
	position: relative;
	padding-left: 13px;
	margin-bottom: 8px;
	color: #d6d3d1;
	font-size: .77rem;
}

.iroha-footer__facts li::before {
	position: absolute;
	top: .8em;
	left: 0;
	width: 4px;
	height: 4px;
	background: var(--iroha-lightgreen);
	border-radius: 50%;
	content: "";
}

.iroha-footer__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.iroha-footer__buttons .iroha-button {
	min-height: 39px;
	padding: 8px 12px;
	font-size: .72rem;
}

.iroha-footer__bottom {
	padding-top: 24px;
	margin-top: 34px;
	border-top: 1px solid rgba(255, 255, 255, .12);
}

.iroha-footer__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 7px 20px;
	padding: 0;
	margin: 0 0 20px;
	list-style: none;
}

.iroha-footer__nav a {
	color: #d6d3d1;
	font-size: .72rem;
	font-weight: 700;
}

.iroha-footer__bottom > p {
	margin: 0;
	color: var(--iroha-stone-400);
	font-size: .65rem;
	text-align: center;
}

.iroha-mobile-bar {
	display: none;
}

.iroha-page-hero {
	padding: 62px 0;
	background: linear-gradient(135deg, var(--iroha-softgreen), var(--iroha-cream));
	border-bottom: 1px solid var(--iroha-stone-100);
}

.iroha-page-hero h1 {
	margin: 0;
	color: var(--iroha-brown);
	font-size: clamp(2rem, 4vw, 3rem);
}

.iroha-page__content {
	max-width: 920px;
	padding-top: 65px;
	padding-bottom: 70px;
	background: #fff;
}

.iroha-page__content h2 {
	padding: 12px 16px;
	margin-top: 50px;
	background: var(--iroha-softgreen);
	border-left: 5px solid var(--iroha-green);
	color: var(--iroha-brown);
	font-size: 1.55rem;
}

.iroha-page__content h3 {
	margin-top: 35px;
	color: var(--iroha-brown);
	font-size: 1.2rem;
}

.iroha-page__content table {
	width: 100%;
	border-collapse: collapse;
}

.iroha-page__content th,
.iroha-page__content td {
	padding: 11px;
	border: 1px solid var(--iroha-stone-200);
}

.iroha-page__content th {
	background: var(--iroha-softgreen);
}

.iroha-common-cta {
	padding: 55px 0;
	background: var(--iroha-cream);
}

.iroha-common-cta__box {
	margin-bottom: 0;
}

.iroha-common-cta__box > p:not(.iroha-kicker) {
	color: var(--iroha-stone-600);
}

.iroha-archive,
.iroha-not-found {
	padding-top: 70px;
	padding-bottom: 70px;
}

.iroha-entry-card {
	padding: 25px;
	margin-bottom: 20px;
	background: #fff;
	border: 1px solid var(--iroha-stone-200);
	border-radius: 14px;
}

@media (max-width: 1100px) {
	.iroha-header__actions {
		display: none;
	}

	.iroha-menu-toggle {
		display: inline-flex;
	}

	.iroha-global-nav {
		display: none;
	}

	.iroha-brand__note {
		display: none;
	}

	.iroha-mission-points {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.admin-bar .iroha-header {
		top: 46px;
	}
}

@media (max-width: 767px) {
	body.iroha-site {
		padding-bottom: 72px;
		font-size: 15px;
	}

	.iroha-container {
		width: min(calc(100% - 30px), var(--iroha-container));
	}

	.iroha-header__inner {
		min-height: 70px;
	}

	.iroha-brand__text strong {
		font-size: 1.08rem;
	}

	.iroha-brand__logo img {
		max-width: 190px;
		max-height: 50px;
	}

	.iroha-mobile-menu {
		top: 70px;
		max-height: calc(100vh - 70px);
	}

	.iroha-section {
		padding: 58px 0;
	}

	.iroha-section-heading {
		margin-bottom: 32px;
	}

	.iroha-section-heading h2,
	.iroha-split__copy h2,
	.iroha-director h2,
	.iroha-common-cta h2 {
		font-size: 1.7rem;
	}

	.iroha-button-row {
		flex-direction: column;
	}

	.iroha-button-row .iroha-button {
		width: 100%;
	}

	.iroha-hero,
	.iroha-hero__inner {
		min-height: 640px;
	}

	.iroha-hero__inner {
		align-items: flex-end;
		padding-top: 55px;
		padding-bottom: 48px;
	}

	.iroha-hero__overlay {
		background:
			linear-gradient(0deg, rgba(49, 91, 61, .92) 0%, rgba(76, 126, 70, .66) 62%, rgba(238, 247, 232, .16) 100%),
			linear-gradient(90deg, rgba(49, 91, 61, .5), transparent);
	}

	.iroha-hero h1 {
		font-size: clamp(2rem, 9vw, 2.75rem);
		line-height: 1.4;
	}

	.iroha-hero__location {
		font-size: .72rem;
	}

	.iroha-hero__buttons {
		gap: 9px;
	}

	.iroha-hero__hours {
		display: flex;
		width: 100%;
		gap: 6px 12px;
	}

	.iroha-challenges-card {
		padding: 25px 20px;
	}

	.iroha-challenges-card ul {
		grid-template-columns: 1fr;
	}

	.iroha-mission-copy {
		text-align: left;
	}

	.iroha-mission-points {
		grid-template-columns: 1fr;
	}

	.iroha-mission-points li {
		display: grid;
		grid-template-columns: 35px 34px 1fr;
		min-height: auto;
		padding: 17px;
		text-align: left;
	}

	.iroha-mission-points__number {
		position: static;
		transform: none;
	}

	.iroha-mission-points svg {
		margin: 0;
	}

	.iroha-services-grid {
		grid-template-columns: 1fr;
	}

	.iroha-service-card,
	.iroha-service-card:nth-child(4),
	.iroha-service-card:nth-child(5) {
		grid-column: auto;
	}

	.iroha-split,
	.iroha-instagram,
	.iroha-director,
	.iroha-access__grid,
	.iroha-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.iroha-split--first .iroha-split__copy,
	.iroha-split--first .iroha-split__image,
	.iroha-split--exercise .iroha-exercise-image,
	.iroha-split--exercise .iroha-split__copy {
		grid-column: auto;
	}

	.iroha-split--first .iroha-split__image {
		order: -1;
	}

	.iroha-split__image img {
		min-height: 240px;
	}

	.iroha-facilities-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.iroha-facility-card figcaption {
		font-size: .66rem;
	}

	.iroha-instagram {
		gap: 30px;
	}

	.iroha-director {
		text-align: left;
	}

	.iroha-director figure {
		width: 230px;
	}

	.iroha-access__cta,
	.iroha-common-cta__box {
		padding: 25px 18px;
	}

	.iroha-access__hours {
		grid-template-columns: 1fr 1fr;
	}

	.iroha-footer {
		padding-bottom: 30px;
	}

	.iroha-footer__grid {
		gap: 30px;
	}

	.iroha-mobile-bar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 1200;
		display: grid;
		grid-template-columns: 1.15fr 1fr .8fr;
		gap: 6px;
		padding: 7px 8px max(7px, env(safe-area-inset-bottom));
		background: #fff;
		border-top: 1px solid var(--iroha-stone-200);
		box-shadow: 0 -8px 20px rgba(44, 30, 20, .12);
	}

	.iroha-mobile-bar a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 5px;
		min-width: 0;
		min-height: 54px;
		padding: 5px;
		border-radius: 10px;
		font-size: .68rem;
		font-weight: 800;
		line-height: 1.2;
		text-align: center;
	}

	.iroha-mobile-bar svg {
		width: 17px;
		height: 17px;
	}

	.iroha-mobile-bar small {
		display: block;
		margin-top: 2px;
		font-size: .58rem;
		font-weight: 500;
	}

	.iroha-mobile-bar__line {
		background: var(--iroha-line);
		color: #fff !important;
	}

	.iroha-mobile-bar__phone {
		background: var(--iroha-brown);
		color: #fff !important;
	}

	.iroha-mobile-bar__access {
		background: #fff;
		border: 1px solid var(--iroha-stone-200);
		color: var(--iroha-brown) !important;
	}

	.iroha-mobile-bar__access svg {
		color: var(--iroha-green);
	}

	.iroha-page__content {
		padding-top: 45px;
		padding-bottom: 50px;
	}

	.iroha-page__content table {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
	}
}

@media (max-width: 420px) {
	.iroha-brand__text strong {
		font-size: .98rem;
	}

	.iroha-brand__text small {
		font-size: .5rem;
	}

	.iroha-hero__badges li {
		font-size: .68rem;
	}

	.iroha-facilities-grid {
		grid-template-columns: 1fr 1fr;
	}

	.iroha-mobile-bar a {
		font-size: .62rem;
	}
}

/* 2026-08-11: approved home-section layouts (services=demo1, challenges/mission=demo5, first-time=demo6). */
.iroha-section-heading--approved h2 {
	position: relative;
	display: inline-block;
	padding-bottom: 13px;
}

.iroha-section-heading--approved h2::after {
	position: absolute;
	right: 25%;
	bottom: 0;
	left: 25%;
	height: 4px;
	content: "";
	background: var(--iroha-green);
	border-radius: 999px;
}

.iroha-services-grid--demo1 {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 18px;
	max-width: 940px;
	margin: 0 auto;
}

.iroha-service-card--demo1 {
	grid-column: span 2;
	display: flex;
	flex-direction: column;
	min-height: 220px;
	background: #fff;
	border: 1px solid var(--iroha-stone-100);
	border-radius: 16px;
	box-shadow: 0 8px 22px rgba(44, 30, 20, .07);
	overflow: hidden;
}

.iroha-service-card--demo1:nth-child(4) { grid-column: 2 / span 2; }
.iroha-service-card--demo1:nth-child(5) { grid-column: 4 / span 2; }

.iroha-service-card--demo1 .iroha-service-card__body { padding: 25px 24px 18px; }
.iroha-service-card--demo1 .iroha-service-card__title { display: flex; align-items: center; gap: 10px; }
.iroha-service-card--demo1 .iroha-service-card__title span { display: grid; width: 34px; height: 34px; place-items: center; color: #fff; background: var(--iroha-green); border-radius: 9px; }
.iroha-service-card--demo1 .iroha-service-card__title h3 { margin: 0; color: var(--iroha-brown); font-size: 1rem; }
.iroha-service-card--demo1 p { margin: 18px 0 0; color: var(--iroha-stone-600); font-size: .83rem; line-height: 1.8; }
.iroha-service-card--demo1 > a { display: flex; align-items: center; justify-content: center; gap: 5px; padding: 11px 16px; margin: auto 18px 18px; color: var(--iroha-brown); background: var(--iroha-cream); border: 1px solid var(--iroha-stone-200); border-radius: 8px; font-size: .78rem; font-weight: 700; }

.iroha-challenges-card--demo5 { padding: 32px 38px; background: #fff; border: 1px solid var(--iroha-stone-200); border-radius: 18px; box-shadow: 0 8px 22px rgba(44, 30, 20, .06); }
.iroha-challenges-card--demo5 ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 38px; padding: 0; margin: 0; list-style: none; }
.iroha-challenges-card--demo5 li { display: flex; gap: 11px; align-items: flex-start; color: var(--iroha-stone-600); font-size: .91rem; line-height: 1.75; }
.iroha-challenges-card--demo5 li span { display: grid; width: 22px; height: 22px; place-items: center; margin-top: 2px; color: #ff6b7a; background: #fff1f3; border: 1px solid #ffc5cd; border-radius: 50%; }
.iroha-challenges-card--demo5 li svg { width: 12px; height: 12px; }
.iroha-challenges-card--demo5 > p { padding-top: 22px; margin: 24px 0 0; color: var(--iroha-brown); border-top: 1px solid var(--iroha-stone-200); font-size: .96rem; font-weight: 700; text-align: center; }

.iroha-mission-copy--demo5 { max-width: 900px; margin: 0 auto 38px; color: var(--iroha-stone-600); font-size: .93rem; line-height: 1.95; text-align: center; }
.iroha-mission-copy--demo5 p { margin: 0 0 15px; }
.iroha-mission-copy--demo5 .iroha-mission-copy__quote { padding: 11px 18px; color: var(--iroha-brown); background: var(--iroha-softgreen); border-radius: 7px; font-weight: 700; }
.iroha-mission-points--demo5 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 13px; max-width: 970px; padding: 0; margin: 0 auto; list-style: none; }
.iroha-mission-points--demo5 li { position: relative; display: flex; flex-direction: column; align-items: center; padding: 20px 15px 17px; text-align: center; background: var(--iroha-cream); border: 1px solid var(--iroha-stone-200); border-radius: 12px; }
.iroha-mission-points--demo5 .iroha-mission-points__number { position: absolute; top: 11px; left: 11px; display: grid; width: 23px; height: 23px; place-items: center; color: #fff; background: var(--iroha-green); border-radius: 50%; font-size: .7rem; font-weight: 700; }
.iroha-mission-points--demo5 .iroha-mission-points__icon { display: grid; width: 46px; height: 46px; place-items: center; margin: 0 0 12px; color: var(--iroha-green); background: rgba(104, 185, 72, .11); border-radius: 50%; }
.iroha-mission-points--demo5 strong { color: var(--iroha-brown); font-size: .81rem; line-height: 1.55; }
.iroha-mission-points--demo5 p { margin: 10px 0 0; color: var(--iroha-stone-500); font-size: .7rem; line-height: 1.65; }

.iroha-first-time { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 42px; align-items: stretch; }
.iroha-first-time__copy { padding: 8px 0; }
.iroha-first-time__copy h2 { margin: 0; color: var(--iroha-brown); font-size: clamp(1.7rem, 3vw, 2.25rem); line-height: 1.45; }
.iroha-first-time__copy > p:not(.iroha-kicker) { margin: 18px 0 0; color: var(--iroha-stone-600); font-size: .93rem; line-height: 1.95; }
.iroha-first-time__flow { padding: 30px 32px; background: var(--iroha-cream); border: 1px solid var(--iroha-stone-200); border-radius: 17px; box-shadow: 0 5px 15px rgba(44, 30, 20, .04); }
.iroha-first-time__flow h3 { display: flex; gap: 9px; align-items: center; padding-bottom: 15px; margin: 0 0 20px; color: var(--iroha-brown); border-bottom: 1px solid var(--iroha-stone-200); font-size: 1rem; }
.iroha-first-time__flow h3 svg { color: var(--iroha-green); }
.iroha-first-time__flow ol { position: relative; display: grid; gap: 18px; padding: 0; margin: 0; list-style: none; }
.iroha-first-time__flow ol::before { position: absolute; top: 14px; bottom: 14px; left: 14px; width: 2px; content: ""; background: rgba(104, 185, 72, .25); }
.iroha-first-time__flow li { position: relative; display: grid; grid-template-columns: 30px 1fr; gap: 13px; align-items: flex-start; }
.iroha-first-time__flow li > span { z-index: 1; display: grid; width: 30px; height: 30px; place-items: center; color: #fff; background: var(--iroha-green); border-radius: 50%; font-size: .75rem; font-weight: 700; }
.iroha-first-time__flow li strong { display: block; color: var(--iroha-brown); font-size: .91rem; }
.iroha-first-time__flow li p { margin: 2px 0 0; color: var(--iroha-stone-500); font-size: .78rem; line-height: 1.65; }

@media (max-width: 760px) {
	.iroha-services-grid--demo1 { grid-template-columns: 1fr; }
	.iroha-service-card--demo1, .iroha-service-card--demo1:nth-child(4), .iroha-service-card--demo1:nth-child(5) { grid-column: auto; min-height: 0; }
	.iroha-challenges-card--demo5 { padding: 25px 22px; }
	.iroha-challenges-card--demo5 ul, .iroha-mission-points--demo5, .iroha-first-time { grid-template-columns: 1fr; }
	.iroha-mission-points--demo5 { gap: 11px; }
	.iroha-first-time { gap: 26px; }
	.iroha-first-time__flow { padding: 24px 20px; }
}

/* 2026-08-11 rev2: exact approved copy blocks. */
.iroha-services-heading > p:last-child { max-width: 720px; }
.iroha-challenges-card--demo5 .iroha-challenges-card__outro { padding-top: 22px; margin-top: 24px; border-top: 1px solid var(--iroha-stone-200); text-align: left; }
.iroha-challenges-card--demo5 .iroha-challenges-card__outro p { padding: 0; margin: 0; color: var(--iroha-stone-600); border: 0; font-size: .91rem; font-weight: 400; line-height: 1.85; text-align: left; }
.iroha-challenges-card--demo5 .iroha-challenges-card__outro p:first-child { margin-bottom: 12px; color: var(--iroha-brown); font-weight: 700; }
.iroha-mission-copy--demo5 strong { display: inline; padding: 1px 4px; color: var(--iroha-brown); background: var(--iroha-softgreen); font-weight: 700; }
.iroha-first-time__price { padding: 17px 18px; margin-top: 20px; background: var(--iroha-softgreen); border-left: 4px solid var(--iroha-green); border-radius: 0 9px 9px 0; }
.iroha-first-time__price strong { color: var(--iroha-brown); font-size: .88rem; }
.iroha-first-time__price p { margin: 5px 0 0; color: var(--iroha-stone-500); font-size: .75rem; line-height: 1.65; }
.iroha-first-time__price a { display: inline-flex; align-items: center; gap: 3px; margin-top: 8px; color: var(--iroha-green); font-size: .78rem; font-weight: 700; }
.iroha-first-time__questions { padding: 17px 18px; margin-top: 18px; background: #f8fcf6; border: 1px solid rgba(104, 185, 72, .25); border-radius: 13px; }
.iroha-first-time__questions > strong { display: flex; gap: 5px; align-items: center; color: var(--iroha-brown); font-size: .77rem; }
.iroha-first-time__questions > strong svg { width: 15px; color: var(--iroha-lightgreen); }
.iroha-first-time__questions ul { display: grid; gap: 5px; padding: 0; margin: 10px 0 0; list-style: none; color: var(--iroha-brown); font-size: .75rem; font-weight: 700; }
.iroha-first-time__questions li { display: flex; gap: 7px; align-items: flex-start; }
.iroha-first-time__questions li::before { width: 5px; height: 5px; margin-top: .55em; content: ""; background: var(--iroha-lightgreen); border-radius: 50%; }


/* 2026-08-13: Demo 9 Instagram footer button. */
.iroha-footer__buttons a[href*="instagram.com"] {
	background: linear-gradient(90deg, #ec4899, #eab308);
	border-color: transparent;
	color: #fff !important;
}

.iroha-footer__buttons a[href*="instagram.com"]:hover,
.iroha-footer__buttons a[href*="instagram.com"]:focus-visible {
	opacity: .9;
}


/* 2026-08-13: Latest posts on the front page. */
.iroha-news {
	padding-block: clamp(48px, 7vw, 88px);
}

.iroha-news__inner {
	max-width: 980px;
}

.iroha-news__heading {
	margin-bottom: clamp(20px, 3vw, 32px);
	text-align: left;
}

.iroha-news__heading h2 {
	margin: 0;
}

.iroha-news__list {
	padding: 0;
	margin: 0;
	list-style: none;
	border-top: 1px solid rgba(74, 58, 43, .22);
}

.iroha-news__item {
	display: grid;
	grid-template-columns: 130px minmax(0, 1fr);
	gap: 24px;
	align-items: center;
	padding: 19px 0;
	border-bottom: 1px solid rgba(74, 58, 43, .22);
}

.iroha-news__date {
	color: var(--iroha-brown);
	font-size: .88rem;
	letter-spacing: .08em;
}

.iroha-news__title {
	color: var(--iroha-brown);
	font-weight: 700;
	text-decoration: none;
}

.iroha-news__title:hover,
.iroha-news__title:focus-visible {
	color: var(--iroha-green);
	text-decoration: underline;
	text-underline-offset: .2em;
}

@media (max-width: 767px) {
	.iroha-news__item {
		grid-template-columns: 1fr;
		gap: 7px;
		padding: 16px 0;
	}

	.iroha-news__date {
		font-size: .78rem;
	}

	.iroha-news__title {
		font-size: .96rem;
	}
}
