@charset "UTF-8";
/* がんばれ！子供村 TOPリニューアル用
   ※他ページで読み込んでいる style.css とは併用しない（このファイル単体で完結） */

:root {
	--brown: #563305;          /* ロゴの茶 */
	--brown-dark: #3d2404;
	--brown-mid: #8a6a3a;
	--orange: #d58901;         /* ロゴのオレンジ */
	--orange-light: #eaa93a;
	--orange-deep: #96600a;
	--cream: #fdf6e7;          /* 薄黄色 */
	--apricot: #f7e5c8;        /* 薄オレンジ */
	--ink: #36291a;
	--gray: #7d6d55;
	--line: #ead9bc;
	--side-w: 264px;
	--sans: "Noto Sans JP", -apple-system, "Hiragino Sans", "Yu Gothic", sans-serif;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 24px;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: var(--sans);
	font-size: 15px;
	line-height: 1.95;
	color: var(--ink);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: bottom;
}

a {
	color: inherit;
}

ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

:focus-visible {
	outline: 2px solid var(--orange);
	outline-offset: 2px;
}


/* ------------------------------
   左サイドバー
------------------------------ */

.side {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	display: flex;
	flex-direction: column;
	width: var(--side-w);
	height: 100vh;
	padding: 34px 0 22px;
	overflow-y: auto;
	background: #eab04a;
	border-right: 4px solid var(--brown);
	color: var(--brown-dark);
}

.side-logo {
	display: block;
	padding: 0 22px 28px;
	text-align: center;
	text-decoration: none;
	position: relative;
}
.side-logo::before{
	content: '';
	position: absolute;
	background: url(/images/haniton01.webp) no-repeat;
	background-size: contain;
	width: 2rem;
	aspect-ratio: 1/1;
	top: -0.3rem;
	left: 1rem;
}
.side-logo .sub {
	display: block;
	margin-bottom: 12px;
	color: var(--brown);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .24em;
}

.side-logo .main {
	display: block;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .08em;
	background: #fff;
	padding: 1rem;
}

.side-nav {
	border-top: 1px solid rgba(61, 36, 4, .18);
}

.side-nav a {
	display: flex;
	align-items: center;
	padding: 14px 22px;
	border-bottom: 1px solid rgba(61, 36, 4, .18);
	border-left: 3px solid transparent;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .1em;
	text-decoration: none;
	transition: background .2s, border-color .2s;
}

.side-nav a:hover,
.side-nav a:focus-visible {
	background: var(--orange-light);
	border-left-color: var(--brown);
}

.side-nav .ex::after {
	content: "";
	width: 8px;
	height: 8px;
	margin-left: auto;
	border: 1px solid rgba(61, 36, 4, .5);
	border-left: none;
	border-bottom: none;
	transform: rotate(45deg);
}

.side-cta {
	margin: 24px 20px 26px;
}

.side-cta a {
	display: block;
	padding: 13px 8px;
	background: var(--brown);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	text-align: center;
	text-decoration: none;
	transition: background .2s;
}

.side-cta a:hover {
	background: var(--brown-dark);
}

.side-cta span {
	display: block;
	margin-top: 2px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .2em;
	opacity: .85;
}

.side-sns {
	display: flex;
	gap: 8px;
	padding: 0 22px 18px;
}

.side-sns a {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border: 1px solid rgba(61, 36, 4, .35);
	font-size: 12px;
	text-decoration: none;
}

.side-sns a:hover {
	background: rgba(255, 255, 255, .35);
}

.side-info {
	margin-top: auto;
	padding: 0 22px;
	color: rgba(61, 36, 4, .72);
	font-size: 11px;
	line-height: 1.9;
}

.sp-head {
	display: none;
}


/* ------------------------------
   メインビジュアル
------------------------------ */

main {
	margin-left: var(--side-w);
}

.mv {
	position: relative;
	height: 64vh;
	min-height: 400px;
	overflow: hidden;
	background: var(--apricot);
}

.mv-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.mv-slide.is-active {
	opacity: 1;
}

.mv-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mv::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(86, 51, 5, .30) 0%, rgba(86, 51, 5, .05) 40%, rgba(86, 51, 5, .52) 100%);
}

.mv-copy {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 58px;
	z-index: 2;
	padding: 0 20px;
	color: #fff;
	text-align: center;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .4);
}

.mv-copy .lead {
	margin: 0 0 10px;
	font-size: clamp(21px, 2.6vw, 32px);
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: .12em;
}

.mv-copy .sub {
	margin: 0;
	font-size: 12px;
	letter-spacing: .22em;
	opacity: .9;
}

.mv-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 22px;
	z-index: 3;
	display: flex;
	justify-content: center;
	gap: 10px;
}

.mv-dots button {
	width: 26px;
	height: 2px;
	padding: 0;
	border: none;
	background: rgba(255, 255, 255, .45);
	cursor: pointer;
}

.mv-dots button.is-active {
	background: var(--orange-light);
}


/* ------------------------------
   セクション共通
------------------------------ */

.sec {
	padding: 82px 0;
}

.sec-banner {
	padding-bottom: 0;
}

.bg-soft {
	background: var(--cream);
}

.inner {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 34px;
}

.sec-head {
	margin-bottom: 48px;
	text-align: center;
}

.sec-head .en {
	display: block;
	margin-bottom: 10px;
	color: var(--orange);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .28em;
}

.sec-head h2 {
	position: relative;
	margin: 0;
	padding-bottom: 18px;
	font-size: 27px;
	font-weight: 700;
	letter-spacing: .14em;
}

.sec-head h2::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 40px;
	height: 1px;
	background: var(--orange);
	transform: translateX(-50%);
}

.more {
	margin-top: 30px;
	text-align: center;
}

.btn {
	display: inline-block;
	padding: 17px 52px;
	background: var(--orange);
	color: var(--brown-dark);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .1em;
	text-decoration: none;
	transition: background .2s;
}

.btn:hover {
	background: var(--orange-light);
}

.btn-line {
	display: inline-block;
	padding: 12px 34px;
	background: #fff;
	border: 1px solid var(--brown-mid);
	color: var(--brown);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .1em;
	text-decoration: none;
	transition: background .2s, color .2s;
}

.btn-line:hover {
	background: var(--brown);
	border-color: var(--brown);
	color: #fff;
}


/* ------------------------------
   私たちの想い
------------------------------ */

.message {
	background: var(--cream);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	text-align: center;
}

.message h1 {
	margin: 0 0 40px;
	color: var(--brown);
	font-size: clamp(22px, 2.8vw, 31px);
	font-weight: 700;
	line-height: 1.8;
	letter-spacing: .1em;
}

.message p {
	margin: 0 0 28px;
	line-height: 2.3;
}

.message .voice {
	color: var(--brown);
	font-size: 17px;
	font-weight: 500;
	line-height: 2.6;
	letter-spacing: .06em;
}

.message .decide {
	margin: 38px 0 44px;
	padding: 22px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	color: var(--brown-dark);
	font-size: clamp(19px, 2.4vw, 24px);
	font-weight: 700;
	letter-spacing: .1em;
}

.message-photo {
	margin: 0 0 44px;
	background: var(--apricot);
}

.message-photo img {
	display: block;
	width: 100%;
}

.message .close {
	margin: 40px 0 0;
	color: var(--brown);
	font-size: 19px;
	font-weight: 700;
	line-height: 2.2;
	letter-spacing: .08em;
}

.message .close small {
	display: block;
	margin-bottom: 16px;
	color: var(--gray);
	font-size: 14px;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0;
}

.stats {
	display: flex;
	margin: 0 0 44px;
	padding: 30px 12px;
	background: #fff;
	border: 1px solid var(--line);
	border-top: 3px solid var(--orange);
}

.stats li {
	position: relative;
	flex: 1;
	padding: 0 12px;
}

.stats li + li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	bottom: 4px;
	width: 1px;
	background: var(--line);
}

.stats .label {
	display: block;
	margin-bottom: 4px;
	color: var(--gray);
	font-size: 11px;
	letter-spacing: .16em;
}

.stats .num {
	display: block;
	color: var(--brown);
	font-size: clamp(27px, 3.4vw, 37px);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .02em;
}

.stats .num span {
	margin-left: 3px;
	font-size: 15px;
}

.stats .note {
	display: block;
	color: var(--gray);
	font-size: 11px;
	letter-spacing: .04em;
}


/* ------------------------------
   NSグループのご紹介
------------------------------ */

.ns-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 42px 44px;
	background: var(--orange);
	border-left: 4px solid var(--brown);
	color: var(--brown-dark);
	text-decoration: none;
	transition: background .25s;
}

.ns-banner:hover {
	background: var(--orange-light);
}

.ns-banner .t {
	display: block;
	margin-bottom: 8px;
	font-size: 23px;
	font-weight: 700;
	letter-spacing: .14em;
}

.ns-banner .d {
	display: block;
	font-size: 13px;
	line-height: 1.9;
	opacity: .78;
}

.ns-banner .arrow {
	display: grid;
	place-items: center;
	flex: none;
	width: 50px;
	height: 50px;
	border: 1px solid var(--brown);
	color: var(--brown);
	font-size: 16px;
}


/* ------------------------------
   お知らせ
------------------------------ */

.news-list {
	border-top: 1px solid var(--line);
}

.news-list a:not([class]),
.news-list div.link_blank {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding: 22px 4px;
	border-bottom: 1px solid var(--line);
	text-decoration: none;
	transition: background .2s;
}

.news-list a:hover {
	background: var(--cream);
}
.news-item_links{
display: block;
width: fit-content;
}
.news-thumb {
	flex: none;
	width: 140px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--apricot);
}

.news-body .date {
	color: var(--gray);
	font-size: 12px;
	letter-spacing: .1em;
}

.news-body .tag {
	display: inline-block;
	margin-left: 10px;
	padding: 1px 10px;
	border: 1px solid var(--orange);
	color: var(--orange);
	font-size: 10px;
	letter-spacing: .1em;
}

.news-body .ttl {
	display: block;
	margin: 6px 0 4px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.8;
	letter-spacing: .06em;
}

.news-body .txt {
	display: block;
	color: var(--gray);
	font-size: 13px;
	line-height: 1.9;
}


/* ------------------------------
   活動実績
------------------------------ */

.cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 26px;
}

.card {
	background: #fff;
	border: 1px solid var(--line);
}

.card img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	background: var(--apricot);
}

.card .body {
	padding: 22px 24px 26px;
}

.card h3 {
	margin: 0 0 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--line);
	color: var(--brown);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .08em;
}

.card p {
	margin: 0;
	color: var(--gray);
	font-size: 13px;
	line-height: 2;
}


/* ------------------------------
   受賞実績・メディア掲載
------------------------------ */

.awards li {
	display: flex;
	align-items: baseline;
	gap: 24px;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
}

.awards li:first-child {
	border-top: 1px solid var(--line);
}

.awards .year {
	flex: none;
	width: 70px;
	color: var(--orange);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .1em;
}

.awards .ttl {
	display: block;
	margin-bottom: 4px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .06em;
}

.awards .txt {
	display: block;
	color: var(--gray);
	font-size: 13px;
}

.media-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.media-list li {
	padding: 16px 20px;
	background: #fff;
	border: 1px solid var(--line);
	border-left: 3px solid var(--orange);
}

.media-list .src {
	display: block;
	margin-bottom: 2px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .06em;
}

.media-list .txt {
	color: var(--gray);
	font-size: 12px;
}


/* ------------------------------
   よくある質問
------------------------------ */

.faq details {
	margin-bottom: 10px;
	background: #fff;
	border: 1px solid var(--line);
}

.faq summary {
	position: relative;
	padding: 18px 48px 18px 22px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .06em;
	list-style: none;
	cursor: pointer;
}

.faq summary::-webkit-details-marker {
	display: none;
}

.faq summary::after {
	content: "＋";
	position: absolute;
	right: 20px;
	top: 50%;
	color: var(--orange);
	font-size: 15px;
	transform: translateY(-50%);
}

.faq details[open] summary::after {
	content: "−";
}

.faq .a {
	margin: 0;
	padding: 0 22px 20px;
	color: var(--gray);
	font-size: 14px;
	line-height: 2;
}


/* ------------------------------
   お問い合わせ・フッター
------------------------------ */

.contact {
	background: var(--orange);
	color: var(--brown-dark);
	text-align: center;
}

.contact h2 {
	margin: 0 0 18px;
	font-size: 25px;
	font-weight: 700;
	letter-spacing: .14em;
}

.contact p {
	margin: 0 0 32px;
	font-size: 14px;
	line-height: 2.1;
	opacity: .82;
}

.contact .btn {
	background: var(--brown);
	color: #fff;
}

.contact .btn:hover {
	background: var(--brown-dark);
}

footer {
	padding: 46px 0 30px;
	background: var(--orange-deep);
	color: rgba(255, 255, 255, .72);
	font-size: 12px;
}

footer .inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 30px;
}

footer .canpan {
	width: 100%;
	margin: 0;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(255, 255, 255, .15);
	text-align: center;
}

footer .canpan a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: rgba(255, 255, 255, .8);
	text-decoration: none;
}

footer .canpan a:hover span {
	text-decoration: underline;
}

footer dl {
	margin: 0;
}

footer dt {
	margin-bottom: 6px;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
}

footer dd {
	margin: 0;
	line-height: 1.95;
}

footer .copy {
	width: 100%;
	margin: 0;
	padding-top: 18px;
	border-top: 1px solid rgba(255, 255, 255, .15);
	font-size: 11px;
	line-height: 2;
	letter-spacing: .06em;
}


/* ------------------------------
   タブレット・スマホ
------------------------------ */

@media screen and (max-width: 900px) {

	.side {
		width: 274px;
		padding-top: 76px;
		border-right: none;
		transform: translateX(-100%);
		transition: transform .3s ease;
	}

	.side.is-open {
		transform: translateX(0);
	}

	main {
		margin-left: 0;
		padding-top: 60px;
	}

	.sp-head {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 110;
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 60px;
		padding: 0 12px 0 20px;
		background: #eab04a;
		border-bottom: 2px solid var(--brown);
		color: var(--brown-dark);
	}

	.sp-head .logo {
		font-size: 18px;
		font-weight: 700;
		letter-spacing: .08em;
		text-decoration: none;
	}

	.sp-toggle {
		display: grid;
		place-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		padding: 0;
		background: none;
		border: none;
		cursor: pointer;
	}

	.sp-toggle span {
		display: block;
		width: 22px;
		height: 1px;
		background: var(--brown-dark);
		transition: transform .3s, opacity .3s;
	}

	.sp-toggle.is-open span:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}

	.sp-toggle.is-open span:nth-child(2) {
		opacity: 0;
	}

	.sp-toggle.is-open span:nth-child(3) {
		transform: translateY(-6px) rotate(-45deg);
	}

	.overlay {
		position: fixed;
		inset: 0;
		z-index: 99;
		background: rgba(86, 51, 5, .5);
		opacity: 0;
		visibility: hidden;
		transition: opacity .3s;
	}

	.overlay.is-open {
		opacity: 1;
		visibility: visible;
	}

	.mv {
		height: 46vh;
		min-height: 300px;
	}

	.sec {
		padding: 58px 0;
	}

	.inner {
		padding: 0 22px;
	}

	.stats {
		flex-direction: column;
		gap: 20px;
		padding: 24px 18px;
	}

	.stats li + li::before {
		left: 12%;
		right: 12%;
		top: -10px;
		bottom: auto;
		width: auto;
		height: 1px;
	}

	.cards,
	.media-list {
		grid-template-columns: 1fr;
	}

	.ns-banner {
		flex-direction: column;
		padding: 32px 26px;
		text-align: center;
	}

	.news-list a,
	.news-list div.link_blank {
		flex-direction: column;
		gap: 14px;
	}

	.news-thumb {
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.awards li {
		flex-direction: column;
		gap: 4px;
	}

	footer .canpan a {
		flex-direction: column;
		gap: 8px;
	}
}

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}

	* {
		transition: none !important;
		animation: none !important;
	}
}


/* ------------------------------
   TOP → 下層への導線
------------------------------ */

.lead-link {
	position: relative;
	display: block;
	max-width: 640px;
	margin: 56px auto 0;
	padding: 32px 60px 34px 40px;
	background: #fff;
	border: 2px solid var(--orange);
	color: var(--brown);
	text-align: left;
	text-decoration: none;
	transition: background .25s, color .25s;
}

.lead-link .en {
	display: block;
	margin-bottom: 6px;
	color: var(--orange);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .28em;
	transition: color .25s;
}

.lead-link .t {
	display: block;
	margin-bottom: 8px;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: .12em;
}

.lead-link .d {
	display: block;
	color: var(--gray);
	font-size: 13px;
	line-height: 1.9;
	transition: color .25s;
}

.lead-link .arrow {
	position: absolute;
	right: 26px;
	top: 50%;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--orange);
	color: var(--orange);
	font-size: 13px;
	transform: translateY(-50%);
	transition: background .25s, color .25s;
}

.lead-link:hover {
	background: var(--orange);
	color: var(--brown-dark);
}

.lead-link:hover .en,
.lead-link:hover .d {
	color: rgba(61, 36, 4, .78);
}

.lead-link:hover .arrow {
	background: var(--brown);
	color: #fff;
}


/* ------------------------------
   下層ページ
------------------------------ */

.side-nav .current {
	background: var(--orange-light);
	border-left-color: var(--brown);
}

.page-head {
	position: relative;
	height: 300px;
	overflow: hidden;
	background: var(--apricot);
}

.page-head img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.page-head::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(86, 51, 5, .42);
}

.page-head .ttl {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-align: center;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .4);
}

.page-head .en {
	margin: 0 0 10px;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .28em;
}

.page-head h1 {
	margin: 0;
	font-size: clamp(24px, 3vw, 33px);
	font-weight: 700;
	letter-spacing: .16em;
}

.breadcrumbs {
	max-width: 900px;
	margin: 0 auto;
	padding: 16px 34px;
	color: var(--gray);
	font-size: 12px;
}

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.breadcrumbs li + li::before {
	content: "＞";
	margin-right: 8px;
	color: var(--line);
}

.breadcrumbs a {
	color: var(--brown-mid);
	text-decoration: none;
}

.breadcrumbs a:hover {
	text-decoration: underline;
}

.prose {
	margin: 0 0 60px;
}

.prose:last-child {
	margin-bottom: 0;
}

.prose h2 {
	margin: 0 0 24px;
	padding: 0 0 14px 16px;
	border-bottom: 1px solid var(--line);
	border-left: 4px solid var(--orange);
	color: var(--brown);
	font-size: 21px;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.6;
}

.prose h3 {
	margin: 36px 0 14px;
	color: var(--brown);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .08em;
}

.prose p {
	margin: 0 0 24px;
	line-height: 2.2;
}

.prose p:last-child {
	margin-bottom: 0;
}

.prose figure {
	margin: 0 0 28px;
}

.prose figcaption {
	margin-top: 8px;
	color: var(--gray);
	font-size: 12px;
}

.prose .note {
	padding: 22px 26px;
	background: var(--cream);
	border-left: 3px solid var(--brown-mid);
	font-size: 14px;
	line-height: 2.1;
}

.def {
	margin: 0;
	border-top: 1px solid var(--line);
}

.def > div {
	display: flex;
	gap: 24px;
	padding: 18px 4px;
	border-bottom: 1px solid var(--line);
}

.def dt {
	flex: none;
	width: 150px;
	color: var(--brown);
	font-weight: 700;
	letter-spacing: .06em;
}

.def dd {
	margin: 0;
	line-height: 2;
}

.check {
	margin: 0;
}

.check li {
	position: relative;
	margin-bottom: 12px;
	padding-left: 26px;
	line-height: 2;
}

.check li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 12px;
	width: 8px;
	height: 8px;
	background: var(--orange);
}

.sign {
	margin-top: 30px;
	color: var(--gray);
	font-size: 13px;
	text-align: right;
}

@media screen and (max-width: 900px) {

	.lead-link {
		margin-top: 40px;
		padding: 26px 52px 28px 24px;
	}

	.page-head {
		height: 220px;
	}

	.breadcrumbs {
		padding: 14px 22px;
	}

	.def > div {
		flex-direction: column;
		gap: 4px;
	}

	.def dt {
		width: auto;
	}
}


/* ------------------------------
   下層ページ内パーツ
------------------------------ */

.prose .lead-txt {
	font-size: 18px;
	font-weight: 700;
	line-height: 2.1;
	letter-spacing: .06em;
	color: var(--brown);
}

.quote {
	margin: 0 0 28px;
	padding: 28px 32px;
	background: var(--cream);
	border-left: 3px solid var(--orange);
}

.quote p {
	margin: 0 0 16px;
	font-size: 14px;
	line-height: 2.2;
}

.quote p:last-of-type {
	margin-bottom: 0;
}

.quote cite {
	display: block;
	margin-top: 16px;
	color: var(--gray);
	font-size: 12px;
	font-style: normal;
	text-align: right;
}

/* 画像未入稿時のプレースホルダー */
.img-ph {
	display: grid;
	place-items: center;
	min-height: 200px;
	margin: 0 0 28px;
	padding: 24px;
	background: var(--apricot);
	border: 1px dashed var(--brown-mid);
	color: var(--brown-mid);
	font-size: 13px;
	text-align: center;
}

.img-ph-row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-bottom: 28px;
}

.img-ph-row .img-ph {
	margin: 0;
}

/* 活動紹介 */
.act {
	margin-bottom: 56px;
	padding-bottom: 56px;
	border-bottom: 1px solid var(--line);
}

.act:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.act .no {
	display: block;
	margin-bottom: 6px;
	color: var(--orange);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .24em;
}

.act h3 {
	margin: 0 0 20px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--line);
	color: var(--brown);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: .08em;
}

.highlight {
	margin: 28px 0;
	padding: 22px 26px;
	background: var(--cream);
	border: 1px solid var(--line);
	border-top: 3px solid var(--orange);
	color: var(--brown);
	font-size: 17px;
	font-weight: 700;
	line-height: 2;
	letter-spacing: .06em;
	text-align: center;
}

/* 年表 */
.timeline {
	margin: 0;
	border-top: 1px solid var(--line);
}

.timeline > div {
	display: flex;
	gap: 24px;
	padding: 16px 4px;
	border-bottom: 1px solid var(--line);
}

.timeline dt {
	flex: none;
	width: 62px;
	color: var(--orange);
	font-weight: 700;
	letter-spacing: .06em;
}

.timeline dd {
	margin: 0;
	line-height: 2;
}

/* 社長メッセージ */
.ceo {
	padding: 46px 48px;
	background: var(--cream);
	border-top: 3px solid var(--orange);
}

.ceo h2 {
	margin: 0 0 28px;
	padding: 0;
	border: none;
	color: var(--brown);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: .1em;
	text-align: center;
}

.ceo p {
	margin: 0 0 22px;
	font-size: 14px;
	line-height: 2.2;
}

.ceo .sign {
	margin: 30px 0 0;
	color: var(--brown);
	font-size: 14px;
	line-height: 2;
	text-align: right;
}

.ceo .sign strong {
	font-size: 17px;
	letter-spacing: .1em;
}

@media screen and (max-width: 900px) {

	.quote {
		padding: 22px 20px;
	}

	.img-ph-row {
		grid-template-columns: 1fr;
	}

	.timeline > div {
		flex-direction: column;
		gap: 2px;
	}

	.ceo {
		padding: 32px 22px;
	}

	.highlight {
		padding: 18px 16px;
		font-size: 15px;
	}
}


/* ------------------------------
   レポートページ
------------------------------ */

.voices {
	margin: 0;
	border-top: 1px solid var(--line);
}

.voices li {
	display: flex;
	gap: 26px;
	padding: 26px 4px;
	border-bottom: 1px solid var(--line);
}

.voices img {
	flex: none;
	width: 160px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--apricot);
}

.voices p {
	margin: 0;
	font-size: 14px;
	line-height: 2.1;
}

.voices .name {
	margin-top: 12px;
	color: var(--brown);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
}

.voices .name span {
	display: block;
	color: var(--gray);
	font-size: 12px;
	font-weight: 400;
}

.gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 14px;
}

.gallery img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--apricot);
}

.steps {
	margin: 0;
	padding-left: 0;
}

.steps > div {
	display: flex;
	gap: 20px;
	padding: 14px 4px;
	border-bottom: 1px dashed var(--line);
}

.steps dt {
	flex: none;
	width: 94px;
	color: var(--orange);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
}

.steps dd {
	margin: 0;
	font-size: 14px;
	line-height: 2;
}

@media screen and (max-width: 900px) {

	.voices li {
		flex-direction: column;
		gap: 14px;
	}

	.voices img {
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.steps > div {
		flex-direction: column;
		gap: 2px;
	}
}

.card-link {
	margin-top: 14px !important;
	font-size: 13px;
	font-weight: 700;
}

.card-link a {
	color: var(--orange);
	text-decoration: none;
}

.card-link a::after {
	content: " →";
}

.card-link a:hover {
	text-decoration: underline;
}


/* ------------------------------
   活動実績テーブル
------------------------------ */

.record {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.record th,
.record td {
	padding: 12px 14px;
	border: 1px solid var(--line);
	line-height: 1.9;
	text-align: left;
	vertical-align: top;
}

.record thead th {
	background: var(--orange);
	border-color: var(--orange);
	color: var(--brown-dark);
	font-weight: 700;
	letter-spacing: .06em;
	white-space: nowrap;
}

.record tbody th {
	width: 92px;
	background: var(--cream);
	color: var(--brown);
	font-weight: 700;
	white-space: nowrap;
}

.record .num-cell {
	width: 96px;
	white-space: nowrap;
}

.record .guest-cell {
	width: 132px;
}

.record tfoot th,
.record tfoot td {
	background: var(--apricot);
	color: var(--brown);
	font-weight: 700;
}

.record a {
	color: var(--brown);
	text-underline-offset: 3px;
}

.record a:hover {
	color: var(--orange);
}

.record-note {
	margin: 14px 0 0;
	color: var(--gray);
	font-size: 12px;
}

@media screen and (max-width: 900px) {

	.record thead {
		display: none;
	}

	.record,
	.record tbody,
	.record tfoot,
	.record tr,
	.record th,
	.record td {
		display: block;
		width: auto;
	}

	.record tr {
		margin-bottom: 16px;
		border: 1px solid var(--line);
	}

	.record th,
	.record td {
		border: none;
		border-bottom: 1px solid var(--line);
	}

	.record tr > *:last-child {
		border-bottom: none;
	}

	.record tbody th,
	.record tfoot th {
		width: auto;
		font-size: 15px;
	}

	.record td::before {
		content: attr(data-label);
		display: block;
		margin-bottom: 2px;
		color: var(--gray);
		font-size: 11px;
		letter-spacing: .1em;
	}
}
