@charset "UTF-8";

body.home {
	margin: 0;
}

body.home *,
body.home *::before,
body.home *::after {
	box-sizing: border-box;
}

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

body.home .nursery-front :where(h1, h2, h3, p, ul) {
	margin: 0;
}

body.home .l-main__inner {
	overflow: hidden;
}

.nursery-front-main {
	width: 100%;
}

/* main.css の .home.page より広く、フロントページの共通余白を確実に解除する。 */
body.home .l-content__body,
body.page-template-front-page .l-content__body {
	margin-bottom: 0;
	margin-top: 0;
}

.nursery-front {
	--nursery-green: #df8e9b;
	--nursery-pale-green: #f8e5e8;
	--nursery-gray: #f7f2f2;
	color: #333;
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, sans-serif;
	left: 50%;
	line-height: 1.7;
	margin-left: -50vw;
	position: relative;
	width: 100vw;
}

.nursery-front ul {
	list-style: none;
	padding: 0;
}

.nursery-hero {
	align-items: center;
	background: linear-gradient(rgba(69, 38, 42, .08), rgba(69, 38, 42, .17)), url("../images/nursery/front/hero-shinkou.jpg") center / cover no-repeat;
	display: flex;
	justify-content: center;
	min-height: clamp(520px, 62vw, 860px);
	position: relative;
	text-align: center;
}

.nursery-hero::after {
	background: #fff;
	bottom: -1px;
	content: "";
	height: clamp(24px, 3.2vw, 60px);
	left: 0;
	-webkit-mask: url("../images/nursery/wave/wave.svg") center / 100% 100% no-repeat;
	mask: url("../images/nursery/wave/wave.svg") center / 100% 100% no-repeat;
	position: absolute;
	width: 100%;
}

.nursery-hero__content {
	color: #fff;
	padding: 3rem 1.25rem;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .45);
}

.nursery-hero__school-name {
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
	font-size: clamp(.8rem, 1.5vw, 1rem);
	font-weight: 600;
	letter-spacing: .3em;
	margin-bottom: .65rem;
}

.nursery-hero__policy {
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(3rem, 7vw, 5.5rem);
	font-weight: 400;
	letter-spacing: .08em;
	line-height: 1.3;
}

.nursery-hero__lead {
	font-size: clamp(1.1rem, 3vw, 2.1rem);
	font-weight: 500;
	margin-top: .5rem;
}

.nursery-button,
.nursery-more a {
	border-radius: 999px;
	display: inline-block;
	padding: .8rem 2rem;
	text-decoration: none;
	transition: background-color .2s, transform .2s;
}

.nursery-button:hover,
.nursery-more a:hover {
	transform: translateY(-2px);
}

.nursery-button--light {
	border: 2px solid #fff;
	color: #fff;
	margin-top: 2rem;
}

.nursery-section {
	padding: clamp(4rem, 8vw, 7rem) max(5vw, 1.25rem);
}

.nursery-section__inner {
	margin: 0 auto;
	max-width: 1080px;
}

.nursery-section__title {
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-weight: 400;
	text-align: center;
}

.nursery-section__title > span {
	color: #6b4a42;
	display: block;
	font-weight: 400;
	font-size: clamp(2.2rem, 5vw, 3.4rem);
	letter-spacing: .04em;
}

.nursery-section__title small {
	display: block;
	font-size: .9rem;
	font-weight: 400;
	font-weight: 500;
	margin-top: .35rem;
}

.nursery-section__description {
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
	margin-top: 1rem;
	text-align: center;
}

.nursery-feature,
.nursery-news,
.nursery-diary,
.nursery-letter {
	scroll-margin-top: calc(var(--nursery-header-height, 76px) + 24px);
}

.nursery-feature {
	--feature-bg: #fff;
	background: var(--feature-bg);
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	margin: 0;
	max-width: none;
	padding: clamp(4rem, 9vw, 8rem) max(4vw, calc((100vw - 1280px) / 2 + 2rem));
	width: 100%;
}

.nursery-feature:nth-of-type(3n + 2) { --feature-bg: var(--nursery-gray); }
.nursery-feature:nth-of-type(3n) { --feature-bg: var(--nursery-pale-green); }

.nursery-feature__image {
	border-radius: 18px;
	box-shadow: 0 20px 50px rgba(72, 40, 44, .12);
	grid-column: 1 / 9;
	grid-row: 1;
	height: clamp(360px, 42vw, 580px);
	overflow: hidden;
	position: relative;
}

body.home .nursery-feature__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease;
	width: 100%;
}

.nursery-feature:hover .nursery-feature__image img { transform: scale(1.025); }

.nursery-feature__body {
	align-self: center;
	background: rgba(255, 255, 255, .96);
	border-radius: 14px;
	box-shadow: 0 18px 55px rgba(72, 40, 44, .16);
	grid-column: 8 / 13;
	grid-row: 1;
	padding: clamp(2rem, 4vw, 3.75rem);
	position: relative;
	text-align: left;
	z-index: 2;
}

.nursery-feature--reverse .nursery-feature__image { grid-column: 5 / 13; }
.nursery-feature--reverse .nursery-feature__body { grid-column: 1 / 6; }

.nursery-feature__en {
	color: #c66f7f;
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.nursery-feature__body h2 {
	color: #6b4a42;
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(1.6rem, 3.2vw, 2.35rem);
	font-weight: 400;
	margin-top: .5rem;
}

.nursery-feature__body h2 + p {
	font-size: .9rem;
	line-height: 1.85;
	margin-top: 1.5rem;
}

.nursery-feature__more {
	border: 1px solid rgba(0, 0, 0, .16);
	border-radius: 999px;
	color: inherit;
	display: inline-block;
	margin-top: 2rem;
	padding: .7rem 2.25rem;
	font-size: .82rem;
	text-decoration: none;
	transition: background-color .2s, transform .2s;
}

.nursery-feature__more:hover {
	background: rgba(0, 0, 0, .06);
	transform: translateY(-2px);
}

.nursery-feature-separator {
	background-position: center;
	background-size: cover;
	height: clamp(230px, 34vw, 500px);
	position: relative;
	width: 100%;
}

.nursery-feature-separator--1 { background-image: url("../images/nursery/front/separator-shinkou-1.jpg"); }
.nursery-feature-separator--2 { background-image: url("../images/nursery/front/separator-shinkou-2.jpg"); }
.nursery-feature-separator--3 { background-image: url("../images/nursery/front/separator-shinkou-3.jpg"); }
.nursery-feature-separator--4 { background-image: url("../images/nursery/front/separator-shinkou-facility.jpg"); }
.nursery-feature-separator--5 { background-image: url("../images/nursery/front/separator-shinkou-5.jpg"); }

.nursery-feature-separator::before,
.nursery-feature-separator::after {
	content: "";
	height: clamp(28px, 4vw, 64px);
	left: 0;
	-webkit-mask: url("../images/nursery/wave/wave.svg") center / 100% 100% no-repeat;
	mask: url("../images/nursery/wave/wave.svg") center / 100% 100% no-repeat;
	position: absolute;
	width: 100%;
}

.nursery-feature-separator::before {
	background: #fff;
	top: -1px;
	transform: scaleY(-1);
}

.nursery-feature-separator::after {
	background: var(--nursery-gray);
	bottom: -1px;
}

.nursery-feature-separator--2::before { background: var(--nursery-gray); }
.nursery-feature-separator--2::after { background: var(--nursery-pale-green); }
.nursery-feature-separator--3::before { background: var(--nursery-pale-green); }
.nursery-feature-separator--3::after { background: #fff; }
.nursery-feature-separator--4::before { background: #fff; }
.nursery-feature-separator--4::after { background: var(--nursery-gray); }
.nursery-feature-separator--5::before { background: var(--nursery-gray); }
.nursery-feature-separator--5::after { background: var(--nursery-pale-green); }

.nursery-scene {
	background-position: center;
	background-size: cover;
	height: clamp(260px, 50vw, 650px);
	position: relative;
}

.nursery-scene::before,
.nursery-scene::after {
	content: "";
	height: clamp(24px, 3.2vw, 60px);
	left: 0;
	-webkit-mask: url("../images/nursery/wave/wave.svg") center / 100% 100% no-repeat;
	mask: url("../images/nursery/wave/wave.svg") center / 100% 100% no-repeat;
	position: absolute;
	width: 100%;
}

.nursery-scene::before { top: -1px; }
.nursery-scene::after { bottom: -1px; }
.nursery-scene--about { background-image: url("../images/nursery/front/scene-shinkou-about.jpg"); }
.nursery-scene--about::before { background: var(--nursery-pale-green); transform: scaleY(-1); }
.nursery-scene--about::after { background: var(--nursery-gray); }
.nursery-scene--news { background-image: url("../images/nursery/front/scene-shinkou-news.jpg"); }
.nursery-scene--news::before { background: var(--nursery-gray); transform: scaleY(-1); }
.nursery-scene--news::after { background: #fff; }
.nursery-scene--diary { background-image: url("../images/nursery/front/scene-shinkou-diary.jpg"); }
.nursery-scene--diary::before { background: #fff; transform: scaleY(-1); }
.nursery-scene--diary::after { background: var(--nursery-pale-green); }
.nursery-scene--letter { background-image: url("../images/nursery/front/scene-shinkou-letter.jpg"); }
.nursery-scene--letter::before { background: var(--nursery-pale-green); transform: scaleY(-1); }

.nursery-news { background: var(--nursery-gray); }
.nursery-letter { background: var(--nursery-pale-green); }

.nursery-news__list {
	margin-top: 3rem;
}

.nursery-news__list li {
	border-bottom: 1px solid rgba(0, 0, 0, .12);
}

.nursery-news__list li:first-child {
	border-top: 1px solid rgba(0, 0, 0, .12);
}

.nursery-news__list a {
	align-items: center;
	color: inherit;
	display: grid;
	gap: 1rem;
	grid-template-columns: 9em 6em 1fr;
	padding: 1rem .5rem;
	text-decoration: none;
}

.nursery-news__date {
	font-size: .8rem;
	opacity: .65;
}

.nursery-label {
	background: var(--nursery-green);
	border-radius: 999px;
	color: #fff;
	font-size: .75rem;
	padding: .2rem .7rem;
	text-align: center;
}

.nursery-more {
	margin-top: 2.5rem;
	text-align: center;
}

body.home .nursery-front .nursery-more {
	margin-top: 3rem;
}

.nursery-more a {
	background: rgba(0, 0, 0, .055);
	color: inherit;
}

.nursery-diary__list {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 3rem;
}

.nursery-diary__list li {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .08);
	border-radius: 10px;
	overflow: hidden;
}

.nursery-diary__list a {
	color: inherit;
	display: block;
	text-decoration: none;
}

.nursery-diary__list img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	width: 100%;
}

.nursery-diary__body {
	padding: 1.25rem;
}

.nursery-diary__body h3 {
	font-size: 1.15rem;
}

.nursery-diary__body p {
	font-size: .85rem;
	margin-top: .75rem;
}

.nursery-diary__body span {
	display: block;
	font-size: .75rem;
	margin-top: 1rem;
	opacity: .6;
}

.nursery-letter__list {
	display: flex;
	gap: 2rem;
	justify-content: center;
	margin-top: 3rem;
}

.nursery-letter__list li {
	max-width: 180px;
	width: 42%;
}

.nursery-letter__list a {
	background: #fff;
	border-radius: 8px;
	color: inherit;
	display: block;
	padding: .75rem;
	text-align: center;
	text-decoration: none;
}

.nursery-letter__list img {
	aspect-ratio: 1 / 1.414;
	object-fit: cover;
	width: 100%;
}

.nursery-letter__list span {
	display: block;
	font-size: .85rem;
	margin-top: .75rem;
}

body.nursery-modal-is-open {
	overflow: hidden;
}

.nursery-modal[hidden] {
	display: none;
}

.nursery-modal {
	--modal-brown: #76564c;
	--modal-green: #d98090;
	--modal-pale-green: #f9e5e9;
	--modal-cream: #fffdf7;
	display: grid;
	inset: 0;
	padding: 1.25rem;
	place-items: center;
	position: fixed;
	z-index: 10000;
}

.nursery-modal__backdrop {
	backdrop-filter: blur(5px);
	background: rgba(74, 59, 51, .56);
	inset: 0;
	position: absolute;
}

.nursery-modal__dialog {
	animation: nursery-modal-in .28s ease-out;
	background: var(--modal-cream);
	border: 4px solid rgba(255, 255, 255, .9);
	border-radius: 30px;
	box-shadow: 0 28px 80px rgba(72, 49, 41, .3), 0 0 0 1px rgba(118, 86, 76, .08);
	max-height: calc(100vh - 2.5rem);
	max-width: 820px;
	overflow: auto;
	position: relative;
	width: 100%;
	z-index: 1;
}

@keyframes nursery-modal-in {
	from { opacity: 0; transform: translateY(14px) scale(.985); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

.nursery-modal__header {
	align-items: center;
	background: linear-gradient(135deg, #fbe9ec 0%, #fbf5e9 100%);
	border-bottom: 1px dashed rgba(118, 86, 76, .22);
	display: flex;
	justify-content: space-between;
	padding: 1.15rem 1.4rem 1.15rem 1.8rem;
	position: sticky;
	top: 0;
	z-index: 3;
}

.nursery-modal__title {
	color: var(--modal-brown);
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(1.3rem, 3vw, 1.7rem);
	letter-spacing: .06em;
	padding-left: 1.15rem;
	position: relative;
}

.nursery-modal__title::before {
	background: var(--modal-green);
	border-radius: 999px;
	content: "";
	height: .7em;
	left: 0;
	position: absolute;
	top: .38em;
	width: .45rem;
}

.nursery-modal__close {
	align-items: center;
	background: #fff;
	border: 1px solid rgba(118, 86, 76, .13);
	border-radius: 50%;
	box-shadow: 0 4px 12px rgba(118, 86, 76, .1);
	color: var(--modal-brown);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 2rem;
	height: 2.75rem;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: relative;
	width: 2.75rem;
}

.nursery-modal__close span {
	display: none;
}

.nursery-modal__close::before,
.nursery-modal__close::after {
	background: currentColor;
	border-radius: 999px;
	content: "";
	height: 2px;
	left: 50%;
	position: absolute;
	top: 50%;
	width: 1.05rem;
}

.nursery-modal__close::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.nursery-modal__close::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.nursery-modal__close:hover,
.nursery-modal__close:focus-visible {
	background: var(--modal-pale-green);
	outline: 3px solid rgba(217, 128, 144, .28);
}

.nursery-modal__body {
	background: radial-gradient(circle at 97% 98%, rgba(118, 86, 76, .07) 0 70px, transparent 71px);
	min-height: min(50vh, 360px);
	padding: clamp(1.5rem, 4vw, 3rem);
}

.nursery-modal-copy section + section {
	border-top: 2px dotted rgba(217, 128, 144, .42);
	margin-top: 3rem;
	padding-top: 3rem;
}

.nursery-modal-copy h3 {
	align-items: center;
	color: var(--modal-brown);
	display: flex;
	font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(1.25rem, 3vw, 1.55rem);
	gap: .65rem;
	line-height: 1.55;
}

.nursery-modal-copy h3::before {
	display: none;
}

.nursery-modal-copy h4 {
	color: var(--modal-brown);
	font-size: 1.1rem;
	line-height: 1.7;
	margin: 2.5rem 0 0;
	padding-left: 1rem;
	position: relative;
}

.nursery-modal-copy h4::before {
	background: #ebb2bc;
	border-radius: 999px;
	bottom: .05em;
	content: "";
	left: 0;
	position: absolute;
	top: .05em;
	width: .3rem;
}

.nursery-modal-copy p {
	color: #4f4641;
	font-size: .95rem;
	line-height: 2;
	margin-top: 1.35rem;
}

.nursery-modal-copy__lead {
	background: var(--modal-pale-green);
	border-radius: 14px;
	color: var(--modal-brown);
	font-weight: 700;
	line-height: 1.9;
	margin-top: 1.25rem;
	padding: .9rem 1.1rem;
}

.nursery-modal-copy__overview {
	margin: 2rem 0 0;
}

.nursery-modal-copy__overview > div {
	background: rgba(255, 255, 255, .68);
	border-top: 1px dashed rgba(118, 86, 76, .2);
	display: grid;
	grid-template-columns: 9em 1fr;
	padding: .85rem 1rem;
}

.nursery-modal-copy__overview > div:last-child {
	border-bottom: 1px dashed rgba(118, 86, 76, .2);
	border-radius: 0 0 14px 14px;
}

.nursery-modal-copy__overview > div:first-child {
	border-radius: 14px 14px 0 0;
}

.nursery-modal-copy__overview dt {
	color: var(--modal-brown);
	font-weight: 700;
}

.nursery-modal-copy__overview dd {
	margin: 0;
}

.nursery-modal-copy__events {
	margin-top: 2rem;
}

.nursery-modal-copy__events li {
	background: rgba(255, 255, 255, .62);
	border-top: 1px dashed rgba(118, 86, 76, .18);
	display: grid;
	gap: 1rem;
	grid-template-columns: 4em 1fr;
	padding: .7rem 1rem;
}

.nursery-modal-copy__events li:last-child {
	border-bottom: 1px dashed rgba(118, 86, 76, .18);
	border-radius: 0 0 14px 14px;
}

.nursery-modal-copy__events li:first-child {
	border-radius: 14px 14px 0 0;
}

.nursery-modal-copy__events strong,
.nursery-modal-copy a {
	color: #b85f70;
}

.nursery-modal-copy__facilities {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-top: 2rem;
}

.nursery-modal-copy__facilities li {
	background: var(--modal-pale-green);
	border-radius: 14px;
	color: var(--modal-brown);
	font-weight: 700;
	padding: 1.25rem;
	text-align: center;
}

.nursery-modal-copy__daily-program {
	background: #fff;
	border: 1px solid rgba(118, 86, 76, .12);
	border-radius: 20px;
	box-shadow: 0 14px 36px rgba(72, 49, 41, .1);
	margin: 2rem auto 0;
	max-width: 620px;
	overflow: hidden;
	padding: clamp(.75rem, 2vw, 1.25rem);
}

.nursery-modal-copy__daily-program img {
	display: block;
	height: auto;
	width: 100%;
}

.nursery-modal-copy__contact {
	margin: 2rem 0 0;
}

.nursery-modal-copy__contact > div {
	border-top: 1px dashed rgba(118, 86, 76, .22);
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(12em, 1fr) auto;
	padding: 1.15rem .5rem;
}

.nursery-modal-copy__contact > div:last-child {
	border-bottom: 1px dashed rgba(118, 86, 76, .22);
}

.nursery-modal-copy__contact dt {
	color: var(--modal-brown);
	font-weight: 700;
	line-height: 1.6;
}

.nursery-modal-copy__contact dd {
	align-items: center;
	display: flex;
	gap: .75rem;
	margin: 0;
}

.nursery-modal-copy__contact dd span {
	color: #7b746f;
	font-size: .72rem;
	font-weight: 700;
}

.nursery-modal-copy__contact dd strong {
	color: var(--modal-brown);
	font-size: clamp(1.15rem, 4vw, 1.5rem);
	letter-spacing: .04em;
}

/* フロントページ共通の余白リセットより優先し、モーダル内の文章間隔を保つ。 */
body.home .nursery-front .nursery-modal-copy h4 {
	margin-top: 2.5rem;
}

body.home .nursery-front .nursery-modal-copy p {
	margin-top: 1.5rem;
}

body.home .nursery-front .nursery-modal-copy .nursery-modal-copy__lead {
	margin-bottom: 2rem;
	margin-top: 1.5rem;
	padding: 1.15rem 1.35rem;
}

body.home .nursery-front .nursery-modal-copy .nursery-modal-copy__lead + p {
	margin-top: 0;
}

body.home .nursery-front .nursery-modal-copy .nursery-modal-copy__overview,
body.home .nursery-front .nursery-modal-copy .nursery-modal-copy__events,
body.home .nursery-front .nursery-modal-copy .nursery-modal-copy__contact,
body.home .nursery-front .nursery-modal-copy .nursery-modal-copy__daily-program {
	margin-top: 2.5rem;
}

body.home .nursery-front .nursery-modal-copy p + .nursery-modal-copy__events,
body.home .nursery-front .nursery-modal-copy p + .nursery-modal-copy__daily-program {
	margin-top: 3rem;
}

@media (max-width: 767px) {
	.nursery-feature {
		display: block;
		padding-bottom: 4.5rem;
		padding-top: 4.5rem;
	}

	.nursery-feature__image,
	.nursery-feature--reverse .nursery-feature__image {
		border-radius: 12px;
		height: min(72vw, 430px);
	}

	.nursery-feature__body,
	.nursery-feature--reverse .nursery-feature__body {
		margin: -3rem 1rem 0;
		padding: 2rem 1.5rem;
	}

	.nursery-diary__list {
		grid-template-columns: 1fr;
	}

	.nursery-news__list a {
		gap: .5rem .75rem;
		grid-template-columns: auto 1fr;
	}

	.nursery-news__title {
		grid-column: 1 / -1;
	}

	.nursery-modal__dialog {
		border-radius: 22px;
		max-height: calc(100vh - 1.5rem);
	}

	.nursery-modal__body {
		padding: 1.5rem 1.2rem 2rem;
	}

	.nursery-modal-copy__overview > div {
		grid-template-columns: 1fr;
	}

	.nursery-modal-copy__overview dd {
		margin-top: .25rem;
	}

	.nursery-modal-copy__contact > div {
		gap: .4rem;
		grid-template-columns: 1fr;
	}

	.nursery-modal-copy__contact dd {
		justify-content: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nursery-modal__dialog {
		animation: none;
	}
}
