@charset "UTF-8";
/* CSS Document */

/*
30.入居をお考えの方へ
40.ご家族・支援者の方へ
50.料金・生活支援パック
幅 1280px
PC 1025px〜
SMP 〜1024px（基準400px）
SMPのfont-sizeはXD数値の1/2（カンプ幅800pxのため）
*/

#page30,
#page30 *,
#page40,
#page40 *,
#page50,
#page50 * {
	box-sizing: border-box;
}

#page30 img,
#page40 img,
#page50 img {
	display: block;
	max-width: 100%;
}

.sec-head {
	position: relative;
	margin: 0 auto 40px;
	text-align: center;
}

.sec-head .en,
.mv .en,
.family .en,
.pro .en,
.monthly .en,
.tables .en {
	margin-bottom: 12px;
	color: #0098bc;
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.5px;
}

.sec-head h2,
.family h2,
.pro h2,
.monthly h2,
.tables h2,
.audience h2 {
	font-weight: 700;
	color: #4a4a4a;
}

.center-note {
	width: 900px;
	max-width: 100%;
	margin: 28px auto 0;
	text-align: center;
}

.pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	height: 58px;
	padding: 0 24px;
	border-radius: 40px;
	color: #fff;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 20px;
	font-weight: 700;
}

.pill.is-gold {
	background: #f0b429;
}

#page30 .pill,
#page40 .pill,
#page50 .pill {
	border: 2px solid transparent;
	box-shadow: 0 8px 18px rgba(0, 98, 121, 0.2);
	color: #fff;
	transition: background-color 0.4s, color 0.4s, border-color 0.4s;
}

#page30 .pill::after,
#page40 .pill::after,
#page50 .pill::after {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-left: 12px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
}

#page30 .pill.is-gold,
#page40 .pill.is-gold,
#page50 .pill.is-gold {
	background: #F5C23E;
	border-color: #F5C23E;
	color: #fff;
}

@media (hover: hover) and (pointer: fine) and (min-width: 1025px) {

	#page30 .pill.is-gold:hover,
	#page40 .pill.is-gold:hover,
	#page50 .pill.is-gold:hover {
		background: #fff;
		border-color: #F5C23E;
		color: #DDAE34;
	}

	#page30 .pill.is-gold:hover::after,
	#page40 .pill.is-gold:hover::after,
	#page50 .pill.is-gold:hover::after {
		border-top-color: #F5C23E;
		border-right-color: #F5C23E;
	}
}

#page30 .pill.is-teal,
#page40 .pill.is-teal,
#page50 .pill.is-teal {
	background: #74CDD8;
	border-color: #74CDD8;
	color: #fff;
}

@media (hover: hover) and (pointer: fine) and (min-width: 1025px) {

	#page30 .pill.is-teal:hover,
	#page40 .pill.is-teal:hover,
	#page50 .pill.is-teal:hover {
		background: #0098BC;
		border-color: #0098BC;
		color: #fff;
	}
}



.faq-list {
	width: 980px;
	max-width: 100%;
	margin: 0 auto;
}

.faq-list details {
	padding: 22px 0;
}

.faq-list summary {
	display: flex;
	align-items: flex-start;
	gap: 30px;
	color: #0098bc;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 22px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.faq-list summary::-webkit-details-marker {
	display: none;
}

.faq-list summary .q {
	flex-shrink: 0;
	font-size: 26px;
	font-weight: 500;
}

.faq-list summary span:nth-child(2) {
	flex: 1;
}

.faq-list summary::after {
	content: "−";
	margin-left: auto;
	font-family: "Montserrat", sans-serif;
	font-size: 28px;
	font-weight: 500;
	flex-shrink: 0;
}

.faq-list details:not([open]) summary::after {
	content: "+";
}

.faq-list details p {
	padding: 12px 0 8px 56px;
}

/* Guarantee answer is hidden until [open] is set — JS-independent safety net */
.faq-list details:not([open])>p {
	display: none;
}

.steps {
	width: 980px;
	max-width: 100%;
	margin: 0 auto;
	list-style: none;
	padding: 0;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 10px 32px rgba(40, 90, 110, 0.1);
}

.steps li {
	display: flex;
	gap: 24px;
	padding: 22px 32px;
	border-top: 1px solid #e8f4f8;
	border-bottom: 1px solid #e8f4f8;
	align-items: flex-start;
}

.steps li:first-child {
	border-top: none;
}

.steps li:last-child {
	border-bottom: none;
}

.step-no {
	flex-shrink: 0;
	width: 90px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
}

.step-word {
	color: #0098bc;
	font-size: 12px;
	font-weight: 500;
	text-transform: lowercase;
	letter-spacing: 1px;
	line-height: 1;
}

.step-num {
	color: #0098bc;
	font-size: 22px;
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1.2;
}

.steps h3 {
	margin-bottom: 6px;
	color: #0098bc;
	font-size: 22px;
	font-weight: 700;
}

/*PC*/
@media only screen and (min-width: 1025px) {
	.mv {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 1280px;
		max-width: 100%;
		margin: 10px auto 90px;
	}

	.mv-text {
		width: 430px;
	}

	.mv h1 {
		position: relative;
		margin-bottom: 36px;
		font-size: 40px;
		font-weight: 700;
		letter-spacing: 2px;
		line-height: 1.3;
	}

	.mv h1::after {
		content: "";
		display: block;
		width: 52px;
		height: 4px;
		margin-top: 16px;
		border-radius: 2px;
		background: #2eabc4;
	}

	.mv h2 {
		margin-bottom: 22px;
		color: #0098bc;
		font-size: 30px;
		font-weight: 700;
		line-height: 1.5;
	}

	.mv-img {
		width: 680px;
		height: 460px;
		border-radius: 0 80px 80px 80px;
		overflow: hidden;
	}

	.mv-img img,
	.visit-img img,
	.family-photo img,
	.pro-img img,
	.photo-band img,
	.monthly-photos img,
	.pack-photos img,
	.day-list img,
	.life-list img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.sec-head,
	.features,
	.support,
	.daily,
	.partners,
	.flow,
	.faq,
	.estimate,
	.pack,
	.extra {
		width: 1280px;
		max-width: 100%;
		margin-right: auto;
		margin-left: auto;
	}

	.features,
	.support,
	.daily,
	.partners,
	.flow,
	.faq,
	.estimate,
	.pack,
	.extra,
	.monthly,
	.tables {
		margin-bottom: 100px;
	}

	.sec-head h2 {
		margin-bottom: 16px;
		font-size: 40px;
		letter-spacing: 4px;
		line-height: 1.45;
	}

	.sec-head p:not(.en) {
		width: 760px;
		max-width: 100%;
		margin: 0 auto;
		text-align: center;
	}

	#page30 p:not(.en):not(.num):not(.step-no),
	#page40 p:not(.en):not(.num):not(.step-no),
	#page50 p {
		font-family: "Noto Sans JP", sans-serif;
		font-style: normal;
		font-weight: 500;
		font-size: 20px;
		line-height: 35px;
		letter-spacing: 1.6px;
		color: #4A4A4A;
		text-align: left;
		opacity: 1;
	}

	/* sec-head paragraphs centred on PC — all centred sections */
	#page30 .features .sec-head p:not(.en),
	#page30 .support .sec-head p:not(.en),
	#page30 .partners .sec-head p:not(.en),
	#page30 .flow .sec-head p:not(.en),
	#page30 .faq .sec-head p:not(.en),
	#page40 .support .sec-head p:not(.en),
	#page40 .flow .sec-head p:not(.en),
	#page40 .partners .sec-head p:not(.en),
	#page40 .faq .sec-head p:not(.en) {
		text-align: center;
		margin: 0 auto;
	}

	/* features sec-head h2 + en centred on PC too */
	#page30 .features .sec-head,
	#page30 .features .sec-head .en,
	#page30 .features .sec-head h2 {
		text-align: center;
	}

	#page30 .sec-head .en,
	#page40 .sec-head .en,
	#page50 .sec-head .en,
	#page30 .feature-list .en,
	#page30 .feature-list .num,
	#page30 .day-list .en {
		text-align: center;
	}

	.feature-list,
	.partner-list,
	.extra-list,
	.day-list {
		display: flex;
		justify-content: space-between;
		gap: 24px;
		list-style: none;
	}

	.feature-list {
		gap: 25px;
	}

	.feature-list li {
		position: relative;
		width: 410px;
		padding-bottom: 24px;
		border-radius: 28px;
		background: #fff;
		box-shadow: 0 10px 30px rgba(40, 90, 110, 0.08);
		text-align: center;
		overflow: hidden;
	}

	.feature-list li::after {
		content: "";
		position: absolute;
		top: 16px;
		right: 16px;
		width: 25px;
		height: 25px;
		background: #F6DE0E;
		border-radius: 180px;
		opacity: 0.6;
		z-index: 2;
	}

	/* image wrapper holds photo + white-curve overlay */
	.feature-img-wrap {
		position: relative;
		width: 100%;
		height: 280px;
		overflow: hidden;
	}

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

	/* white curved bottom edge over the photo */
	.feature-curve {
		position: absolute;
		bottom: -2px;
		left: 0;
		right: 0;
		height: 40px;
		background: #fff;
		border-radius: 50% 50% 0 0 / 100% 100% 0 0;
	}

	/* yellow dot sits on top of the white curve — pure CSS, no image file */
	.feature-icon {
		display: block;
		width: 16px;
		height: 16px;
		border-radius: 50%;
		background: #F5C23E;
		margin: -8px auto 0;
		position: relative;
		z-index: 1;
	}

	.feature-list .en {
		margin-top: 10px;
		color: #30a5c1;
		font-size: 14px;
	}

	.feature-list .num {
		color: #30a5c1;
		font-size: 34px;
		font-weight: 600;
		line-height: 1.1;
	}

	.feature-list h3 {
		margin: 8px 16px 10px;
		color: #0098bc;
		font-size: 22px;
		letter-spacing: 1px;
		line-height: 1.45;
	}

	.feature-list p:last-child {
		padding: 0 22px;
		font-size: 16px;
		line-height: 1.8;
		text-align: left;
	}

	.visit {
		position: relative;
		display: flex;
		align-items: center;
		width: 1100px;
		height: 602px;
		max-width: calc(100% - 40px);
		margin: 0 0 100px;
		margin-left: max(20px, calc((100% - 1280px) / 2));
		padding: 40px 48px 40px 405px;
		border-radius: 80px;
		overflow: hidden;
		background: transparent;
	}

	.visit::before {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: 80px;
		background: linear-gradient(135deg, #fff7dc 0%, #f1f8eb 40%, #d8f1f7 100%);
		opacity: 0.9;
	}

	.visit-img,
	.visit-text {
		position: relative;
		z-index: 1;
	}

	.visit-text {
		padding-left: 20px;
	}

	.visit-img {
		position: absolute;
		top: 40px;
		left: 40px;
		bottom: 40px;
		width: 320px;
		height: calc(100% - 80px);
		border-radius: 12px;
		overflow: hidden;
	}

	.visit h2 {
		margin-bottom: 12px;
		font-size: 34px;
	}

	.visit h3 {
		margin-bottom: 14px;
		color: #0098bc;
		font-size: 26px;
	}

	.btn-row {
		display: flex;
		gap: 16px;
		margin-top: 24px;
	}

	.support-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		list-style: none;
	}

	.support-list li {
		display: flex;
		align-items: flex-start;
		gap: 18px;
		width: 48%;
		margin-bottom: 28px;
		padding-bottom: 22px;
		border-bottom: 1px dashed #d7d7d7;
		/* prevent border gaps at list edges */
		box-sizing: border-box;
	}

	.support-list img {
		width: 170px;
		height: 170px;
		object-fit: contain;
		flex-shrink: 0;
	}

	.support-list h3 {
		margin-bottom: 8px;
		color: #0098bc;
		font-size: 20px;
		letter-spacing: 0.5px;
		line-height: 1.55;
	}

	.day-list li {
		width: 23%;
	}

	.day-list img {
		height: 150px;
		margin-bottom: 12px;
		border-radius: 18px;
	}

	.day-list .en {
		font-size: 14px;
		font-weight: 500;
	}

	#page30 .en.is-morning,
	#page40 .en.is-morning {
		color: #0098bc;
	}

	#page30 .en.is-day,
	#page40 .en.is-day {
		color: #e5855f;
	}

	#page30 .en.is-care,
	#page40 .en.is-care {
		color: #65b243;
	}

	#page30 .en.is-evening,
	#page40 .en.is-evening {
		color: #ddae34;
	}

	.day-list h3 {
		margin: 4px 0 8px;
		font-size: 20px;
	}

	.life-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-top: 40px;
		list-style: none;
	}

	.life-list li {
		display: flex;
		gap: 18px;
		width: 48%;
		margin-bottom: 24px;
	}

	.life-list img {
		width: 150px;
		height: 150px;
		border-radius: 20px;
	}

	.life-list h3 {
		margin-bottom: 8px;
		color: #0098bc;
		font-size: 22px;
	}

	/* ── daily-bg-wrap: background image spans daily + partners ── */
	.daily-bg-wrap {
		position: relative;
		background: url('../images/page30/bg_daily.webp') center top / cover no-repeat;
		padding: 0;
		margin-bottom: 0;
	}

	.daily-bg-wrap::before {
		content: "";
		position: absolute;
		inset: 0;
		background: rgba(247, 252, 254, 0.88);
		pointer-events: none;
	}

	.daily-bg-wrap .daily,
	.daily-bg-wrap .partners {
		position: relative;
		z-index: 1;
	}

	#page30 .daily .sec-head {
		margin-bottom: 48px;
		text-align: left;
	}

	#page30 .daily .sec-head .en {
		text-align: left;
		font-size: 16px;
	}

	#page30 .daily .sec-head h2 {
		margin-bottom: 18px;
		color: #4A4A4A;
		font-size: 40px;
		font-weight: 700;
		letter-spacing: 3px;
		line-height: 1.55;
	}

	#page30 .daily .sec-head p:not(.en) {
		width: 760px;
		max-width: 100%;
		margin: 0;
		font-family: "Noto Sans JP", sans-serif;
		font-style: normal;
		font-weight: 500;
		font-size: 20px;
		line-height: 35px;
		letter-spacing: 1.6px;
		color: #4A4A4A;
		text-align: left;
		opacity: 1;
	}

	#page30 .daily .day-list {
		position: relative;
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		column-gap: 40px;
		margin-top: 8px;
	}

	#page30 .daily .day-list::before {
		content: "";
		position: absolute;
		top: 38px;
		left: 38px;
		right: 38px;
		height: 2px;
		background: #d7eef4;
	}

	#page30 .daily .day-list li {
		display: grid;
		grid-template-columns: 76px 1fr;
		column-gap: 14px;
		align-items: center;
		width: auto;
	}

	#page30 .daily .day-list img {
		grid-row: 1 / span 2;
		width: 76px;
		height: 76px;
		margin: 0;
		border-radius: 0;
		object-fit: contain;
	}

	#page30 .daily .day-list .en {
		grid-column: 2;
		margin: 0;
		font-size: 16px;
		font-weight: 600;
		line-height: 1.3;
		text-align: left;
	}

	#page30 .daily .day-list h3 {
		grid-column: 2;
		margin: 2px 0 0;
		color: #4A4A4A;
		font-size: 18px;
		font-weight: 700;
		line-height: 1.4;
	}

	#page30 .daily .day-list li>p:not(.en) {
		grid-column: 1 / -1;
		position: relative;
		margin: 18px 0 0;
		padding-top: 18px;
		border-top: 1px solid #e3e3e3;
	}

	/* dot sits on the horizontal timeline (::before line at top:38px) */
	#page30 .daily .day-list img {
		grid-row: 1 / span 2;
		width: 76px;
		height: 76px;
		margin: 0;
		border-radius: 50%;
		object-fit: cover;
		flex-shrink: 0;
		z-index: 1;
	}

	#page30 .daily .day-list li>p:not(.en)::after {
		content: "";
		position: absolute;
		top: -6px;
		left: 50%;
		transform: translateX(-50%);
		width: 10px;
		height: 10px;
		border-radius: 50%;
		background: #0098bc;
	}

	#page30 .daily .day-list li:nth-child(2)>p:not(.en)::after {
		background: #e5855f;
	}

	#page30 .daily .day-list li:nth-child(3)>p:not(.en)::after {
		background: #65b243;
	}

	#page30 .daily .day-list li:nth-child(4)>p:not(.en)::after {
		background: #ddae34;
	}

	#page30 .daily .life-list {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 36px 56px;
		margin-top: 56px;
	}

	#page30 .daily .life-list li {
		display: flex;
		align-items: center;
		gap: 24px;
		width: auto;
		margin: 0;
	}

	#page30 .daily .life-list img {
		width: 150px;
		height: 150px;
		border-radius: 50%;
		object-fit: cover;
		flex-shrink: 0;
	}

	#page30 .daily .life-list h3 {
		margin-bottom: 8px;
		color: #0098bc;
		font-size: 22px;
		font-weight: 700;
		line-height: 1.5;
	}

	#page30 .daily .life-list li p {
		font-weight: 500;
		font-size: 20px;
		line-height: 35px;
		letter-spacing: 1.6px;
		color: #4A4A4A;
	}

	.partner-list li {
		width: 31%;
		text-align: center;
	}

	.partner-list img {
		width: 180px;
		height: 180px;
		margin: 0 auto 16px;
		border-radius: 24px;
		object-fit: contain;
		background: #f7fbfd;
	}

	.partner-list h3 {
		margin-bottom: 8px;
		color: #0098bc;
		font-size: 22px;
	}

	/* ---------- 40 / 50 MV : title is a little wider than page 30's text column ---------- */
	#page40 .mv h1,
	#page50 .mv h1 {
		white-space: nowrap;
	}

	/* ---------- 40 Audience : 4 × 280px white circles ---------- */
	#page40 .audience {
		width: 1280px;
		max-width: 100%;
		margin: 0 auto 90px;
		text-align: center;
	}

	#page40 .audience h2 {
		margin-bottom: 48px;
		font-size: 40px;
		letter-spacing: 0.05em;
		line-height: 1.625;
	}

	#page40 .audience h2 span {
		position: relative;
		display: inline-block;
	}

	/* dashed diagonal hatch, left "\\" and right "//" */
	#page40 .audience h2 span::before,
	#page40 .audience h2 span::after {
		content: "";
		position: absolute;
		top: calc(50% - 27px);
		width: 12px;
		height: 54px;
		border-right: 1px dashed #9f9f9f;
		border-left: 1px dashed #9f9f9f;
	}

	#page40 .audience h2 span::before {
		left: -80px;
		transform: skewX(40deg);
	}

	#page40 .audience h2 span::after {
		right: -70px;
		transform: skewX(-40deg);
	}

	#page40 .audience ul {
		display: grid;
		grid-template-columns: repeat(4, 280px);
		gap: 30px;
		justify-content: center;
		list-style: none;
	}

	#page40 .audience li {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		height: 280px;
		padding-top: 50px;
		border-radius: 50%;
		background: #fff;
		box-shadow: 0 0 24px rgba(0, 98, 121, 0.1);
	}

	#page40 .audience li::before {
		content: "";
		position: absolute;
		top: 22px;
		left: calc(50% - 6px);
		width: 12px;
		height: 12px;
		border-radius: 50%;
		background: #e5855f;
	}

	#page40 .audience li:nth-child(2)::before {
		background: #0098bc;
	}

	#page40 .audience li:nth-child(3)::before {
		background: #65b243;
	}

	#page40 .audience li:nth-child(4)::before {
		background: #ddae34;
	}

	#page40 .audience img {
		width: auto;
		height: 80px;
		margin-bottom: 20px;
		object-fit: contain;
	}

	#page40 .audience h3 {
		color: #4a4a4a;
		font-size: 22px;
		letter-spacing: 0.12em;
		line-height: 1.5;
	}

	#page40 .audience .en {
		font-size: 16px;
	}

	/* ---------- 40 Family : text left, photo bleeds right, white check card ---------- */
	#page40 .family-bg {
		margin-bottom: 100px;
		padding: 124px 0 60px;
	}

	#page40 .family {
		position: relative;
	}

	#page40 .family-text {
		position: relative;
		z-index: 1;
		width: 600px;
		margin-left: max(20px, calc(50% - 540px));
		padding-top: 26px;
	}

	#page40 .family-text .en,
	#page40 .pro-text .en {
		margin-bottom: 16px;
	}

	#page40 .family h2,
	#page40 .pro h2 {
		margin-bottom: 34px;
		font-size: 40px;
		letter-spacing: 0.1em;
		line-height: 1.6;
	}

	#page40 .family-photo {
		position: absolute;
		top: 0;
		right: 0;
		left: calc(50% + 90px);
		height: 439px;
		border-radius: 20px 0 0 20px;
		overflow: hidden;
	}

	#page40 .check-list {
		position: relative;
		z-index: 1;
		width: 1174px;
		max-width: calc(100% - 40px);
		margin: 57px auto 0;
		padding: 30px 44px 21px 59px;
		border-radius: 30px;
		background: #fff;
		box-shadow: 0 0 30px rgba(0, 98, 121, 0.08);
		list-style: none;
	}

	#page40 .check-list li {
		display: grid;
		grid-template-columns: 315px 1fr;
		padding: 37px 0 35px;
		border-bottom: 2px dashed #e1e1e1;
	}

	#page40 .check-list li:last-child {
		border-bottom: 0;
	}

	#page40 .check-list .label {
		position: relative;
		padding-left: 15px;
		color: #0098bc;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 24px;
		font-weight: 700;
		letter-spacing: 0.1em;
		line-height: 1.6;
	}

	/* pale yellow dot tucked behind the first character */
	#page40 .check-list .label::before {
		content: "";
		position: absolute;
		top: -5px;
		left: 0;
		z-index: -1;
		width: 26px;
		height: 26px;
		border-radius: 50%;
		background: rgba(246, 222, 14, 0.45);
	}

	#page40 .check-list h3 {
		margin-bottom: 11px;
		color: #4a4a4a;
		font-size: 22px;
		letter-spacing: 0.15em;
		line-height: 1.6;
	}

	#page40 .family .pill {
		display: flex;
		width: 444px;
		height: 80px;
		margin: 41px auto 0;
		font-size: 22px;
		letter-spacing: 0.1em;
	}

	/* ---------- 40 Pro : photo bleeds left, text right, tabbed info card ---------- */
	#page40 .pro {
		position: relative;
		margin-top: 90px;
	}

	#page40 .pro-img {
		position: absolute;
		top: 0;
		left: 0;
		width: calc(50% - 90px);
		height: 440px;
		border-radius: 0 20px 20px 0;
		overflow: hidden;
	}

	#page40 .pro-text {
		position: relative;
		width: 540px;
		margin-left: max(560px, 50%);
	}

	/* one soft shadow around the tab + card outline */
	#page40 .info-box {
		position: relative;
		z-index: 1;
		width: 1172px;
		max-width: calc(100% - 40px);
		margin: 57px auto 0;
		filter: drop-shadow(0 0 15px rgba(0, 98, 121, 0.08));
	}

	#page40 .info-box h3 {
		position: relative;
		width: 925px;
		max-width: 100%;
		height: 95px;
		padding: 0 0 0 106px;
		border-radius: 0 20px 0 0;
		background: #2fa5c4;
		color: #fff;
		font-size: 30px;
		letter-spacing: 0.07em;
		line-height: 95px;
	}

	#page40 .info-box h3::before {
		content: "";
		position: absolute;
		top: calc(50% - 29px);
		left: 39px;
		width: 52px;
		height: 58px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 58' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M30 8h5a3 3 0 0 1 3 3v12M38 47v5a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V11a3 3 0 0 1 3-3h5'/%3E%3Crect x='11' y='3' width='19' height='9' rx='2'/%3E%3Cpath d='M10 22h20M10 30h20M10 38h14M10 46h9'/%3E%3Cpath d='M44 24l6 6-17 17-8 2 2-8z'/%3E%3C/svg%3E") center / contain no-repeat;
	}

	#page40 .info-box ol {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 34px 52px;
		padding: 46px 70px 0;
		border-radius: 0 20px 0 0;
		background: #fff;
		list-style: none;
	}

	/* 1px teal dash line (2px dash / 6px pitch) as in the comp */
	#page40 .info-head {
		display: flex;
		align-items: center;
		gap: 20px;
		margin-bottom: 22px;
		padding-bottom: 19px;
		background: linear-gradient(to right, #0098bc 2px, transparent 0) left bottom / 6px 1px repeat-x;
	}

	/* outlined numbers: white fill painted over a doubled stroke hides the variable-font overlap "folds" */
	#page40 .info-box .num {
		color: #fff;
		font-size: 48px;
		font-weight: 700;
		line-height: 1;
		-webkit-text-stroke: 2px #0098bc;
		paint-order: stroke fill;
	}

	#page40 .info-box h4 {
		color: #0098bc;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 24px;
		font-weight: 700;
		letter-spacing: 0.05em;
	}

	#page40 .info-box p.info-note:not(.en) {
		padding: 15px 0 42px;
		border-radius: 0 0 20px 20px;
		background: #fff;
		text-align: center;
	}

	#page40 .pro>.pill {
		display: flex;
		width: 374px;
		height: 80px;
		margin: 40px auto 0;
		font-size: 22px;
		letter-spacing: 0.1em;
	}

	/* ---------- 40 Photo band : full-bleed pair with a white wave ---------- */
	#page40 .photo-band {
		position: relative;
		display: grid;
		grid-template-columns: 1fr 1fr;
		height: 427px;
		overflow: hidden;
	}

	#page40 .photo-band img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	#page40 .photo-band picture {
		display: block;
		min-width: 0;
		height: 100%;
	}

	/* white wave traced from the comp (1500px: x 280–1240, peak 284px from the band top) */
	#page40 .photo-band::after {
		content: "";
		position: absolute;
		bottom: -3px;
		left: calc(50% - 470px);
		width: 960px;
		height: 150px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 280 960 150'%3E%3Cpath fill='%23fff' d='M0 430 L0 426.8C6.7 426.5 26.7 426.5 40 425C53.3 423.5 66.7 421.2 80 417.6C93.3 414 106.7 409.4 120 403.5C133.3 397.6 146.7 390 160 381.9C173.3 373.9 186.7 363.7 200 355.3C213.3 346.9 226.7 338.6 240 331.6C253.3 324.6 266.7 318.7 280 313.5C293.3 308.3 306.7 303.9 320 300.2C333.3 296.5 346.7 293.6 360 291.3C373.3 289 386.7 287.6 400 286.5C413.3 285.4 426.7 284.9 440 284.4C453.3 283.9 466.7 283.7 480 283.7C493.3 283.8 506.7 283.9 520 284.7C533.3 285.5 546.7 286.6 560 288.5C573.3 290.4 586.7 293.1 600 296.4C613.3 299.6 626.7 303.6 640 307.9C653.3 312.3 666.7 316.9 680 322.6C693.3 328.4 706.7 334.9 720 342.5C733.3 350.1 746.7 359.7 760 368.3C773.3 376.9 786.7 386.7 800 394.1C813.3 401.4 826.7 407.7 840 412.4C853.3 417.1 866.7 420 880 422.3C893.3 424.5 906.7 425.2 920 426C933.3 426.8 953.3 426.7 960 426.8L960 430Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	}

	/* ---------- 40 Flow / Partners spacing ---------- */
	#page40 .flow {
		margin-bottom: 90px;
	}

	#page40 .flow .sec-head {
		margin-bottom: 57px;
	}

	/* rows are 123px in the comp (page 30's are taller) */
	#page40 .steps li>div {
		padding: 24px 0 22px 47px;
	}

	#page40 .steps h3 {
		margin-bottom: 9px;
		font-size: 22px;
		letter-spacing: 0.15em;
		line-height: 1.3;
	}

	/* heading rises into the photo band's white wave */
	#page40 .partners {
		position: relative;
		z-index: 1;
		margin-top: -59px;
	}

	#page40 .partners .sec-head {
		margin-bottom: 56px;
	}

	/* ---------- 50 Section heads ---------- */
	#page50 .sec-head h2 {
		margin-bottom: 32px;
	}

	#page50 .sec-head p:not(.en) {
		width: auto;
		max-width: none;
		text-align: center;
	}

	/* ---------- 50 Estimate : blue monthly panel + grey move-in panel ---------- */
	#page50 .estimate {
		margin-bottom: 85px;
	}

	#page50 .estimate .sec-head {
		margin-bottom: 48px;
	}

	#page50 .estimate .sec-head h2 {
		margin-bottom: 46px;
	}

	#page50 .example {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 32px;
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 26px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 40px;
		text-align: center;
	}

	#page50 .example::before,
	#page50 .example::after {
		content: "";
		width: 20px;
		height: 20px;
		border-radius: 50%;
		background: #b5e1ea;
	}

	/* 1350px wide in the comp: 35px wider than the content on each side */
	#page50 .estimate-board {
		display: flex;
		width: min(1350px, calc(100vw - 40px));
		margin-left: calc(50% - min(675px, 50vw - 20px));
	}

	#page50 .estimate-panel {
		flex: 812 1 0;
		min-width: 0;
		margin-top: 26px;
		padding: 0 20px 30px;
		border-radius: 20px;
		background: #e1eef4;
	}

	#page50 .estimate-panel.is-once {
		flex: 532 1 0;
		background: #ebebeb;
	}

	#page50 .panel-head {
		height: 75px;
		margin-top: -26px;
		border-radius: 8px;
		background: #2ea7c4;
		color: #fff;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 26px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 75px;
		text-align: center;
	}

	#page50 .is-once .panel-head {
		background: #e5855f;
	}

	#page50 .panel-total {
		padding: 20px 0;
		border-bottom: 1px solid #2ea7c4;
		color: #0098bc;
		font-size: 52px;
		line-height: 62px;
		letter-spacing: 0.05em;
		text-align: center;
	}

	#page50 .is-once .panel-total {
		border-bottom-color: #e5855f;
		color: #e5855f;
	}

	#page50 .panel-total span,
	#page50 .panel-cards strong span,
	#page50 .monthly .price span,
	#page50 .pack-head .price span {
		font-size: 24px;
		letter-spacing: 0;
		line-height: 1;
	}

	#page50 .panel-cards {
		display: flex;
		margin-top: 20px;
	}

	#page50 .panel-cards>div {
		flex: 1 1 0;
		min-width: 0;
		padding: 32px 10px 25px;
		border-radius: 8px;
		background: #fff;
		text-align: center;
	}

	#page50 .is-once .panel-cards>div:last-child {
		flex-grow: 0.92;
	}

	#page50 .panel-cards p {
		min-height: 64px;
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 22px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 32px;
		text-align: center;
	}

	#page50 .panel-cards strong {
		display: block;
		color: #0098bc;
		font-family: "Noto Sans JP", sans-serif;
		font-size: 38px;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 46px;
	}

	#page50 .panel-cards strong span {
		font-size: 20px;
	}

	#page50 .is-once .panel-cards strong {
		color: #e5855f;
	}

	#page50 .panel-cards small {
		display: block;
		margin-top: 21px;
		color: #4a4a4a;
		font-size: 17px;
		font-weight: 500;
		letter-spacing: 0.08em;
		line-height: 30px;
	}

	/* round "+" badges sit on the gaps between cards / panels */
	#page50 .plus {
		position: relative;
		z-index: 1;
		flex: none;
		width: 5px;
	}

	#page50 .estimate-board>.plus {
		width: 6px;
	}

	#page50 .plus::before {
		content: "";
		position: absolute;
		top: 99px;
		left: calc(50% - 25px);
		width: 50px;
		height: 50px;
		border-radius: 50%;
		background-color: #2ea7c4;
		background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
		background-position: center;
		background-size: 24px 3px, 3px 24px;
		background-repeat: no-repeat;
	}

	#page50 .plus.is-once::before {
		background-color: #e5855f;
	}

	#page50 .estimate-board>.plus::before {
		top: 101px;
	}

	#page50 .center-note {
		width: fit-content;
		max-width: 100%;
		margin: 43px auto 0;
		padding-left: 1.45em;
		font-size: 17px;
		line-height: 29px;
		letter-spacing: 0.08em;
		text-indent: -1.45em;
		text-align: left;
	}

	/* ---------- 50 White cards with a light-blue dot in each corner ---------- */
	#page50 .dot-card {
		position: relative;
		border-radius: 20px;
		background: #fff;
		box-shadow: 0 0 30px rgba(0, 98, 121, 0.1);
	}

	#page50 .dot-card::before {
		content: "";
		position: absolute;
		inset: 15px;
		background:
			radial-gradient(circle, #b5e1ea 10px, transparent 10.5px) left top / 21px 21px no-repeat,
			radial-gradient(circle, #b5e1ea 10px, transparent 10.5px) right top / 21px 21px no-repeat,
			radial-gradient(circle, #b5e1ea 10px, transparent 10.5px) left bottom / 21px 21px no-repeat,
			radial-gradient(circle, #b5e1ea 10px, transparent 10.5px) right bottom / 21px 21px no-repeat;
		pointer-events: none;
	}

	/* ---------- 50 Monthly : text + photos left, fee card right ---------- */
	#page50 .price-bg {
		padding-top: 111px;
	}

	#page50 .monthly {
		display: grid;
		grid-template-columns: 420px minmax(0, 747px);
		column-gap: 65px;
		align-items: start;
		width: 1280px;
		max-width: 100%;
		margin: 0 auto 90px;
		padding-left: 50px;
	}

	#page50 .monthly .en {
		margin-bottom: 18px;
		font-size: 16px;
	}

	#page50 .monthly h2 {
		margin-bottom: 32px;
		font-size: 38px;
		letter-spacing: 0.1em;
		line-height: 65px;
	}

	#page50 .monthly-photos {
		display: flex;
		gap: 20px;
		margin-top: 36px;
	}

	#page50 .monthly-photos img {
		width: 200px;
		height: 124px;
		border-radius: 20px;
		object-fit: cover;
	}

	#page50 .monthly-card {
		display: grid;
		grid-template-columns: 317px minmax(0, 380px);
		margin-top: 47px;
		padding: 50px 50px 50px 0;
	}

	#page50 .monthly-sum {
		padding-top: 27px;
		text-align: center;
	}

	#page50 .price-label {
		margin-bottom: 10px;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 22px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 35px;
		text-align: center;
	}

	#page50 .price {
		color: #0098bc;
		font-size: 50px;
		letter-spacing: 0.05em;
		line-height: 60px;
		text-align: center;
	}

	#page50 .fee-table div {
		display: flex;
		align-items: center;
		min-height: 75px;
		padding: 0 25px;
		border-radius: 8px;
		background: #edf5f8;
	}

	#page50 .fee-table div+div {
		margin-top: 6px;
	}

	/* dotted leader between the item and the price */
	#page50 .fee-table div::after,
	#page50 .tables .plain div::after {
		content: "";
		order: 1;
		flex: 1;
		margin: 0 8px;
		border-top: 1px dotted #9a9a9a;
	}

	#page50 .fee-table dt {
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 20px;
		font-weight: 700;
		letter-spacing: 0.1em;
		line-height: 26px;
	}

	#page50 .fee-table dt span {
		display: block;
	}

	#page50 .fee-table dd {
		order: 2;
		color: #0098bc;
		font-size: 26px;
		font-weight: 500;
		letter-spacing: 0.05em;
	}

	#page50 .fee-table dd span {
		font-size: 17px;
	}

	/* ---------- 50 Pack : white card, 3-column item tiles ---------- */
	#page50 .pack {
		margin-bottom: 90px;
	}

	#page50 .pack .sec-head,
	#page50 .extra .sec-head {
		margin-bottom: 47px;
	}

	#page50 .pack-card {
		padding: 60px 100px;
	}

	#page50 .pack-head {
		display: grid;
		grid-template-columns: auto 1fr auto;
		align-items: end;
		column-gap: 27px;
		padding-left: 10px;
	}

	#page50 .pack-head h3 {
		grid-column: 1;
		margin-bottom: 10px;
		color: #4a4a4a;
		font-size: 24px;
		letter-spacing: 0.15em;
		line-height: 35px;
	}

	#page50 .pack-head .price {
		grid-column: 1;
		text-align: left;
	}

	#page50 .pack-head .price .unit {
		margin-left: 6px;
	}

	#page50 .pack-lead {
		grid-column: 2;
		grid-row: 2;
		padding-bottom: 2px;
		white-space: nowrap;
	}

	#page50 .pack-photos {
		display: flex;
		grid-column: 3;
		grid-row: 1 / span 2;
		gap: 20px;
	}

	#page50 .pack-photos img {
		width: 200px;
		height: 124px;
		border-radius: 20px;
		object-fit: cover;
	}

	#page50 .pack-card ul {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 6px 5px;
		margin-top: 40px;
		list-style: none;
	}

	#page50 .pack-card li {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 75px;
		padding: 0 22px;
		border-radius: 8px;
		background: #edf5f8;
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 20px;
		font-weight: 700;
		letter-spacing: 0.1em;
		line-height: 26px;
	}

	#page50 .pack-card small {
		font-size: 20px;
	}

	#page50 .pack-card .center-note {
		width: auto;
		margin-top: 33px;
	}

	/* ---------- 50 Extra : 3 × 400px white cards ---------- */
	#page50 .extra {
		margin-bottom: 90px;
	}

	#page50 .extra-list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 400px));
		gap: 10px;
		justify-content: center;
	}

	#page50 .extra-list li {
		min-height: 308px;
		padding: 18px 20px 30px;
		border-radius: 30px;
		background: #fff;
		box-shadow: 0 0 24px rgba(0, 98, 121, 0.08);
		text-align: center;
	}

	#page50 .extra-list img {
		width: 134px;
		height: 134px;
		margin: 0 auto;
		object-fit: contain;
	}

	#page50 .extra-list h3 {
		margin-bottom: 16px;
		color: #0098bc;
		font-size: 24px;
		letter-spacing: 0.12em;
		line-height: 35px;
	}

	#page50 .extra-list h3.is-care {
		color: #65b243;
	}

	#page50 .extra-list h3.is-evening {
		color: #ddae34;
	}

	#page50 .extra-list p {
		text-align: center;
	}

	/* ---------- 50 Tables : two 620px white cards ---------- */
	#page50 .tables {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 620px));
		column-gap: 20px;
		justify-content: center;
		margin-bottom: 0;
	}

	#page50 .tables>div {
		width: auto;
		min-height: 686px;
		padding: 63px 48px 60px;
		border-radius: 30px;
		background: #fff;
		box-shadow: 0 0 24px rgba(0, 98, 121, 0.08);
		text-align: center;
	}

	#page50 .tables .en {
		margin-bottom: 11px;
		font-size: 16px;
		text-align: center;
	}

	#page50 .tables h2 {
		margin-bottom: 35px;
		font-size: 40px;
		letter-spacing: 0.05em;
		line-height: 60px;
	}

	#page50 .tables p:not(.en) {
		text-align: center;
	}

	#page50 .tables dl {
		width: 436px;
		max-width: 100%;
		margin: 47px auto 0;
	}

	#page50 .tables dl div {
		display: grid;
		grid-template-columns: 200px 1fr;
		column-gap: 7px;
	}

	#page50 .tables dl div+div {
		margin-top: 6px;
	}

	#page50 .tables dt {
		height: 50px;
		border-radius: 5px;
		background: #74ccd8;
		color: #fff;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 20px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 50px;
		text-align: center;
	}

	#page50 .tables dd {
		padding-right: 70px;
		border-bottom: 2px solid #cfe6ec;
		color: #4a4a4a;
		font-size: 20px;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 48px;
		text-align: right;
	}

	#page50 .tables dl.plain {
		width: auto;
		margin: 38px 12px 0 0;
	}

	#page50 .tables .plain div {
		display: flex;
		align-items: center;
		min-height: 49px;
	}

	#page50 .tables .plain div+div {
		margin-top: 0;
	}

	#page50 .tables .plain dt {
		position: relative;
		height: auto;
		padding-left: 32px;
		background: none;
		color: #4a4a4a;
		font-family: "Noto Sans JP", sans-serif;
		font-weight: 500;
		letter-spacing: 0.1em;
		line-height: 30px;
		text-align: left;
	}

	#page50 .tables .plain dt::before {
		content: "";
		position: absolute;
		top: calc(50% - 10px);
		left: 0;
		width: 20px;
		height: 20px;
		border-radius: 50%;
		background: #74ccd8;
	}

	#page50 .tables .plain dd {
		order: 2;
		padding: 0;
		border: 0;
		line-height: 30px;
	}

	/* ---------- 50 FAQ : starts just under the background's bottom curve ---------- */
	#page50 .faq {
		margin-top: 89px;
		margin-bottom: 90px;
	}
}

/*SMP*/
@media only screen and (max-width: 1024px) {
	.en {
		font-size: 11px;
	}

	.mv,
	.features,
	.visit,
	.support,
	.daily,
	.partners,
	.flow,
	.faq,
	.estimate,
	.monthly,
	.pack,
	.extra,
	.tables {
		width: 100%;
		padding: 0 16px;
		margin: 0 auto 48px;
	}

	.mv-img,
	.visit-img,
	.monthly-photos img,
	.pack-photos img {
		height: 220px;
		margin-top: 16px;
		border-radius: 20px;
		overflow: hidden;
	}

	.mv h1 {
		margin: 8px 0 16px;
		font-size: 23px;
		line-height: 1.4;
	}

	.mv h1::after {
		content: "";
		display: block;
		width: 40px;
		height: 3px;
		margin-top: 10px;
		background: #2eabc4;
	}

	.mv h2 {
		margin-bottom: 12px;
		font-size: 19px;
		line-height: 1.45;
	}

	.sec-head h2,
	.monthly h2,
	.tables h2 {
		margin-bottom: 12px;
		font-size: 23px;
		line-height: 1.45;
	}

	.sec-head,
	.monthly-text,
	.tables>div {
		margin-bottom: 20px;
	}

	.sec-head p:not(.en),
	.center-note {
		text-align: left;
	}

	.feature-list,
	.partner-list,
	.extra-list,
	.day-list,
	.audience ul,
	.support-list,
	.life-list,
	.check-list,
	.info-box ol,
	.pack-card ul {
		list-style: none;
	}

	.feature-list li,
	.day-list li,
	.partner-list li,
	.extra-list li {
		margin-bottom: 28px;
	}

	.feature-list img,
	.day-list img {
		height: 190px;
		margin-bottom: 10px;
		border-radius: 18px;
	}

	#page30 .daily .sec-head,
	#page30 .daily .sec-head .en,
	#page30 .daily .sec-head p:not(.en) {
		text-align: left;
	}

	#page30 .daily .sec-head p:not(.en) {
		width: auto;
		margin: 0;
	}

	/* 「支援のための一日ではなく、」を狭い端末でも1行に収める（幅375pxで約20px） */
	#page30 .daily .sec-head h2 {
		font-size: min(23px, 5.4vw);
		letter-spacing: 0.1em;
	}

	#page30 .daily .day-list {
		display: block;
	}

	#page30 .daily .day-list li {
		display: grid;
		grid-template-columns: 56px 1fr;
		column-gap: 12px;
		align-items: center;
		margin-bottom: 22px;
	}

	#page30 .daily .day-list img {
		grid-row: 1 / span 2;
		width: 56px;
		height: 56px;
		margin: 0;
		border-radius: 0;
		object-fit: contain;
	}

	#page30 .daily .day-list .en,
	#page30 .daily .day-list h3 {
		grid-column: 2;
		text-align: left;
	}

	#page30 .daily .day-list li>p:not(.en) {
		grid-column: 1 / -1;
		position: relative;
		margin-top: 10px;
		padding-top: 12px;
		font-size: 14px;
		line-height: 1.7;
	}

	#page30 .daily .day-list li>p:not(.en)::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 1px;
		background: #e3e3e3;
	}

	#page30 .daily .day-list li>p:not(.en)::after {
		content: "";
		position: absolute;
		top: -4px;
		left: 22px;
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background: #0098bc;
	}

	#page30 .daily .day-list li:nth-child(2)>p:not(.en)::after {
		background: #e5855f;
	}

	#page30 .daily .day-list li:nth-child(3)>p:not(.en)::after {
		background: #65b243;
	}

	#page30 .daily .day-list li:nth-child(4)>p:not(.en)::after {
		background: #ddae34;
	}

	#page30 .daily .life-list img {
		width: 88px;
		height: 88px;
		border-radius: 50%;
		object-fit: cover;
	}

	.feature-list .num {
		color: #30a5c1;
		font-size: 26px;
		font-weight: 600;
	}

	.feature-list h3,
	.support-list h3,
	.life-list h3,
	.partner-list h3,
	.day-list h3,
	.extra-list h3 {
		margin: 6px 0;
		color: #0098bc;
		font-size: 18px;
		line-height: 1.45;
	}

	.visit {
		padding: 20px 16px 24px;
		border-radius: 24px;
		background: linear-gradient(160deg, #fff6d2, #e7f8fd);
	}

	.visit h3 {
		margin: 8px 0;
		color: #0098bc;
		font-size: 19px;
	}

	.btn-row {
		display: flex;
		flex-direction: column;
		gap: 10px;
		margin-top: 16px;
	}

	.pill {
		width: 100%;
		min-width: 0;
		height: 50px;
		font-size: 15px;
	}

	.support-list li,
	.life-list li {
		display: flex;
		gap: 12px;
		margin-bottom: 18px;
		padding-bottom: 16px;
		border-bottom: 1px dashed #e4e4e4;
	}

	.support-list img {
		width: 84px;
		height: 84px;
		object-fit: contain;
	}

	.life-list img,
	.partner-list img,
	.extra-list img {
		width: 96px;
		height: 96px;
		border-radius: 16px;
		object-fit: cover;
	}

	.partner-list,
	.extra-list {
		text-align: center;
	}

	.partner-list img,
	.extra-list img {
		margin: 0 auto 8px;
	}

	#page30 .en.is-morning,
	#page40 .en.is-morning {
		color: #0098bc;
	}

	#page30 .en.is-day,
	#page40 .en.is-day {
		color: #e5855f;
	}

	#page30 .en.is-care,
	#page40 .en.is-care {
		color: #65b243;
	}

	#page30 .en.is-evening,
	#page40 .en.is-evening {
		color: #ddae34;
	}

	.steps li {
		flex-direction: column;
		gap: 4px;
	}

	.faq-list summary {
		font-size: 18px;
	}

	.faq-list details p {
		padding-left: 0;
	}

/* ---------- 40 MV : dotted halo also on SMP (photo keeps the rounded corners) ---------- */
	#page40 .mv-img,
	#page50 .mv-img {
		position: relative;
		z-index: 0;
		overflow: visible;
	}

	#page40 .mv-img::before,
	#page50 .mv-img::before {
		content: "";
		position: absolute;
		top: 15px;
		right: 0;
		bottom: -8px;
		left: -15px;
		z-index: -1;
		border-radius: 30px 0 0 30px;
		background: radial-gradient(circle, #cfe8f0 1.5px, transparent 2px) 0 0 / 7px 7px;
	}

	#page40 .mv-img img,
	#page50 .mv-img img {
		border-radius: 15px 0 0 15px;
	}

	/* ---------- 40 Audience : 2 × 2 circles ---------- */
	#page40 .audience {
		margin-bottom: 60px;
		text-align: center;
	}

	#page40 .audience h2 {
		margin-bottom: 25px;
		font-size: 20px;
		letter-spacing: 0.05em;
		line-height: 1.7;
	}

	#page40 .audience h2 span {
		position: relative;
		display: inline-block;
	}

	#page40 .audience h2 span::before,
	#page40 .audience h2 span::after {
		content: "";
		position: absolute;
		top: calc(50% - 7px);
		width: 6px;
		height: 26px;
		border-right: 1px dashed #9f9f9f;
		border-left: 1px dashed #9f9f9f;
	}

	#page40 .audience h2 span::before {
		left: -38px;
		transform: skewX(40deg);
	}

	#page40 .audience h2 span::after {
		right: -38px;
		transform: skewX(-40deg);
	}

	#page40 .audience ul {
		display: grid;
		grid-template-columns: repeat(2, 160px);
		gap: 10px;
		justify-content: center;
	}

	#page40 .audience li {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		height: 160px;
		padding-top: 28px;
		border-radius: 50%;
		background: #fff;
		box-shadow: 0 0 12px rgba(0, 98, 121, 0.1);
	}

	#page40 .audience li::before {
		content: "";
		position: absolute;
		top: 10px;
		left: calc(50% - 4px);
		width: 8px;
		height: 8px;
		border-radius: 50%;
		background: #e5855f;
	}

	#page40 .audience li:nth-child(2)::before {
		background: #0098bc;
	}

	#page40 .audience li:nth-child(3)::before {
		background: #65b243;
	}

	#page40 .audience li:nth-child(4)::before {
		background: #ddae34;
	}

	#page40 .audience img {
		width: auto;
		height: 42px;
		margin-bottom: 13px;
		object-fit: contain;
	}

	#page40 .audience h3 {
		color: #4a4a4a;
		font-size: 15px;
		letter-spacing: 0.06em;
		line-height: 20px;
	}

	#page40 .audience .en {
		margin-top: 4px;
		font-size: 11px;
	}

	/* ---------- 40 Section heads : tighter tracking than page 30 on SMP ---------- */
	#page40 .sec-head .en,
	#page50 .sec-head .en {
		text-align: center;
	}

	#page40 .sec-head h2,
	#page50 .sec-head h2 {
		font-size: 23px;
		letter-spacing: 0.03em;
		line-height: 32px;
	}

	/* ---------- 40 Support : lead a little narrower than the list ---------- */
	#page40 .support .sec-head {
		padding: 0 21px;
	}

	#page40 .support-list img {
		width: 118px;
		height: 118px;
		object-fit: contain;
	}

	#page40 .support-list h3 {
		margin-top: 0;
	}

	/* list-item copy is 14px / 23.5px on SMP (section leads stay 15px / 30px) */
	#page40 li p:not(.en):not(.num):not(.step-no),
	#page40 details p:not(.en):not(.num):not(.step-no) {
		font-size: 14px;
		letter-spacing: 0.07em;
		line-height: 23.5px;
	}

	/* ---------- 40 Family : photo first (bleeds right), stacked white card ---------- */
	#page40 .family-bg {
		margin-bottom: 60px;
		padding-top: 60px;
	}

	#page40 .family {
		display: flex;
		flex-direction: column;
	}

	#page40 .family-photo {
		order: -1;
		height: 220px;
		margin: 0 0 30px 70px;
		border-radius: 15px 0 0 15px;
		overflow: hidden;
	}

	#page40 .family-text,
	#page40 .pro-text {
		padding: 0 43px;
	}

	#page40 .family-text .en,
	#page40 .pro-text .en {
		margin-bottom: 12px;
	}

	#page40 .family h2,
	#page40 .pro h2 {
		margin-bottom: 21px;
		font-size: 23px;
		letter-spacing: 0.03em;
		line-height: 32px;
	}

	#page40 .check-list {
		isolation: isolate;
		width: calc(100% - 8px);
		margin: 25px auto 0;
		padding: 1px 20px 28px 24px;
		border-radius: 20px;
		background: #fff;
		box-shadow: 0 0 15px rgba(0, 98, 121, 0.08);
	}

	#page40 .check-list li {
		padding: 30px 0 17px;
		border-bottom: 1px dashed #e1e1e1;
	}

	#page40 .check-list li:last-child {
		padding-bottom: 0;
		border-bottom: 0;
	}

	#page40 .check-list .label {
		position: relative;
		padding-left: 11px;
		color: #0098bc;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 19px;
		font-weight: 700;
		letter-spacing: 0.1em;
		line-height: 30px;
	}

	#page40 .check-list .label::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
		width: 16px;
		height: 16px;
		border-radius: 50%;
		background: rgba(246, 222, 14, 0.45);
	}

	#page40 .check-list h3 {
		margin: 17px 0 12px;
		color: #4a4a4a;
		font-size: 17px;
		letter-spacing: 0.07em;
		line-height: 1.6;
	}

	#page40 .family .pill,
	#page40 .pro>.pill {
		display: flex;
		height: 50px;
		margin: 30px auto 0;
		font-size: 15px;
		letter-spacing: 0.1em;
	}

	#page40 .family .pill {
		width: 296px;
	}

	/* ---------- 40 Pro : photo bleeds left, tabbed info card ---------- */
	#page40 .pro {
		margin-top: 60px;
	}

	#page40 .pro-img {
		width: 330px;
		max-width: calc(100% - 70px);
		height: 220px;
		margin-bottom: 30px;
		border-radius: 0 10px 10px 0;
		overflow: hidden;
	}

	#page40 .info-box {
		margin: 26px 16px 0;
		filter: drop-shadow(0 0 10px rgba(0, 98, 121, 0.08));
	}

	#page40 .info-box h3 {
		position: relative;
		width: 310px;
		max-width: 100%;
		padding: 11px 10px 11px 61px;
		border-radius: 0 10px 0 0;
		background: #2fa5c4;
		color: #fff;
		font-size: 15px;
		letter-spacing: 0.07em;
		line-height: 22px;
	}

	#page40 .info-box h3::before {
		content: "";
		position: absolute;
		top: calc(50% - 15px);
		left: 20px;
		width: 26px;
		height: 30px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 58' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M30 8h5a3 3 0 0 1 3 3v12M38 47v5a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V11a3 3 0 0 1 3-3h5'/%3E%3Crect x='11' y='3' width='19' height='9' rx='2'/%3E%3Cpath d='M10 22h20M10 30h20M10 38h14M10 46h9'/%3E%3Cpath d='M44 24l6 6-17 17-8 2 2-8z'/%3E%3C/svg%3E") center / contain no-repeat;
	}

	#page40 .info-box ol {
		display: grid;
		gap: 26px;
		padding: 28px 22px 0 26px;
		border-radius: 0 10px 0 0;
		background: #fff;
	}

	#page40 .info-head {
		display: flex;
		align-items: center;
		gap: 16px;
		margin-bottom: 11px;
		padding-bottom: 10px;
		background: linear-gradient(to right, #0098bc 2px, transparent 0) left bottom / 5px 1px repeat-x;
	}

	#page40 .info-box .num {
		color: #fff;
		font-size: 28px;
		font-weight: 700;
		line-height: 1;
		-webkit-text-stroke: 1.2px #0098bc;
		paint-order: stroke fill;
	}

	#page40 .info-box h4 {
		color: #0098bc;
		font-size: 18px;
		letter-spacing: 0.05em;
	}

	#page40 .info-box p.info-note:not(.en):not(.num) {
		padding: 22px 22px 22px 26px;
		border-radius: 0 0 10px 10px;
		background: #fff;
		font-size: 13px;
		letter-spacing: 0.05em;
		line-height: 23.5px;
	}

	#page40 .pro>.pill {
		width: 248px;
	}

	/* ---------- 40 Flow : no card, 30px sides, larger step labels than page 30 ---------- */
	#page40 .flow {
		margin-bottom: 60px;
		padding: 0 28px 0 30px;
	}

	#page40 .flow .sec-head {
		margin-bottom: 25px;
	}

	#page40 .steps li {
		align-items: stretch;
	}

	#page40 .step-word {
		font-size: 9px;
		text-transform: uppercase;
	}

	#page40 .step-num {
		font-size: 15px;
		font-weight: 500;
	}

	#page40 .steps li>div {
		padding: 16px 0 12px 15px;
	}

	#page40 .steps h3 {
		margin-bottom: 4px;
		font-size: 18px;
		letter-spacing: 0.08em;
		line-height: 1.5;
	}

	/* ---------- 40 Photo band : two photos side by side with a white wave ---------- */
	#page40 .photo-band {
		position: relative;
		display: grid;
		grid-template-columns: 1fr 1fr;
		height: 187px;
		overflow: hidden;
	}

	#page40 .photo-band img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	#page40 .photo-band picture {
		display: block;
		min-width: 0;
		height: 100%;
	}

	/* white wave traced from the SMP comp, stretched to the band width */
	#page40 .photo-band::after {
		content: "";
		position: absolute;
		bottom: -3px;
		left: 0;
		width: 100%;
		height: 65px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 125 400 65' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0 190 L0 187.1C3.3 187 13.3 187 20 186.5C26.7 185.9 33.3 185.4 40 183.9C46.7 182.4 53.3 180.3 60 177.3C66.7 174.3 73.3 170.1 80 166.1C86.7 162.1 93.3 157.2 100 153.4C106.7 149.5 113.3 146 120 143.2C126.7 140.4 133.3 138.1 140 136.3C146.7 134.5 153.3 133.2 160 132.2C166.7 131.3 173.3 130.8 180 130.4C186.7 130 193.3 129.9 200 129.8C206.7 129.8 213.3 129.7 220 130.1C226.7 130.5 233.3 131.1 240 132.2C246.7 133.3 253.3 135 260 136.9C266.7 138.8 273.3 140.9 280 143.7C286.7 146.5 293.3 149.7 300 153.5C306.7 157.2 313.3 162.3 320 166.3C326.7 170.3 333.3 174.7 340 177.6C346.7 180.6 353.3 182.6 360 184.1C366.7 185.5 373.3 185.9 380 186.3C386.7 186.7 396.7 186.6 400 186.6L400 190Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	}

	/* ---------- 40 Partners : heading rises into the wave ---------- */
	#page40 .partners {
		position: relative;
		z-index: 1;
		margin-top: -13px;
		padding: 0 28px 0 30px;
	}

	#page40 .partners .sec-head {
		margin-bottom: 26px;
	}

	/* ---------- 40 FAQ : wider tracking than page 30 on SMP ---------- */
	#page40 .faq-list summary,
	#page50 .faq-list summary {
		gap: 0;
		font-size: 17px;
		letter-spacing: 0.14em;
		line-height: 1.6;
	}

	#page40 .faq-list summary span:nth-child(2),
	#page50 .faq-list summary span:nth-child(2) {
		margin-right: 18px;
	}

	/* ---------- 50 Estimate : panels stack full width, "+" badges between the cards ---------- */
	#page50 .estimate {
		margin-bottom: 65px;
		padding: 0;
	}

	#page50 .estimate .sec-head {
		margin-bottom: 28px;
	}

	#page50 .estimate .sec-head h2 {
		margin-bottom: 29px;
	}

	#page50 .example {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 16px;
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 16px;
		font-weight: 700;
		letter-spacing: 0.12em;
		line-height: 26px;
		text-align: center;
	}

	#page50 .example::before,
	#page50 .example::after {
		content: "";
		flex: none;
		width: 15px;
		height: 15px;
		border-radius: 50%;
		background: #b5e1ea;
	}

	#page50 .estimate-panel {
		margin-top: 14px;
		padding: 0 58px 30px;
		border-radius: 10px;
		background: #e1eef4;
	}

	#page50 .estimate-panel.is-once {
		background: #ebebeb;
	}

	#page50 .panel-head {
		height: 47px;
		margin: -14px -33px 0;
		border-radius: 5px;
		background: #2ea7c4;
		color: #fff;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 17px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 47px;
		text-align: center;
	}

	#page50 .is-once .panel-head {
		background: #e5855f;
	}

	#page50 .panel-total {
		padding: 28px 0 20px;
		border-bottom: 1px solid #2ea7c4;
		color: #0098bc;
		font-size: 30px;
		line-height: 36px;
		letter-spacing: 0.05em;
		text-align: center;
	}

	#page50 .is-once .panel-total {
		border-bottom-color: #e5855f;
		color: #e5855f;
	}

	#page50 .panel-total span,
	#page50 .panel-cards strong span,
	#page50 .monthly .price span,
	#page50 .pack-head .price span {
		font-size: 15px;
		letter-spacing: 0;
		line-height: 1;
	}

	#page50 .panel-cards {
		margin-top: 20px;
	}

	#page50 .panel-cards>div {
		padding: 21px 10px 17px;
		border-radius: 5px;
		background: #fff;
		text-align: center;
	}

	#page50 .panel-cards p {
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 17px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 26px;
		text-align: center;
	}

	#page50 .panel-cards strong {
		display: block;
		margin-top: 14px;
		color: #0098bc;
		font-family: "Noto Sans JP", sans-serif;
		font-size: 25px;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 30px;
	}

	#page50 .panel-cards strong span {
		font-size: 13px;
	}

	#page50 .is-once .panel-cards strong {
		color: #e5855f;
	}

	#page50 .panel-cards small {
		display: block;
		margin-top: 9px;
		color: #4a4a4a;
		font-size: 14px;
		font-weight: 500;
		letter-spacing: 0.08em;
		line-height: 24px;
	}

	#page50 .plus {
		position: relative;
		z-index: 1;
		display: block;
		height: 10px;
	}

	#page50 .estimate-board>.plus {
		height: 45px;
	}

	#page50 .plus::before {
		content: "";
		position: absolute;
		top: calc(50% - 15px);
		left: calc(50% - 15px);
		width: 30px;
		height: 30px;
		border-radius: 50%;
		background-color: #2ea7c4;
		background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
		background-position: center;
		background-size: 15px 2px, 2px 15px;
		background-repeat: no-repeat;
	}

	#page50 .plus.is-once::before {
		background-color: #e5855f;
	}

	#page50 .center-note {
		width: auto;
		margin: 30px 0 0;
		padding: 0 24px 0 41px;
		font-size: 13.5px;
		line-height: 21.5px;
		letter-spacing: 0.06em;
		text-indent: -17px;
		text-align: left;
	}

	/* ---------- 50 White cards with a light-blue dot in each corner ---------- */
	#page50 .dot-card {
		position: relative;
		border-radius: 10px;
		background: #fff;
		box-shadow: 0 0 15px rgba(0, 98, 121, 0.1);
	}

	#page50 .dot-card::before {
		content: "";
		position: absolute;
		inset: 10px;
		background:
			radial-gradient(circle, #b5e1ea 5px, transparent 5.5px) left top / 10.5px 10.5px no-repeat,
			radial-gradient(circle, #b5e1ea 5px, transparent 5.5px) right top / 10.5px 10.5px no-repeat,
			radial-gradient(circle, #b5e1ea 5px, transparent 5.5px) left bottom / 10.5px 10.5px no-repeat,
			radial-gradient(circle, #b5e1ea 5px, transparent 5.5px) right bottom / 10.5px 10.5px no-repeat;
		pointer-events: none;
	}

	/* ---------- 50 Monthly ---------- */
	#page50 .price-bg {
		padding-top: 36.5px;
	}

	#page50 .monthly {
		margin-bottom: 60px;
		padding: 0 44px;
	}

	#page50 .monthly-text {
		margin-bottom: 0;
	}

	#page50 .monthly .en {
		margin-bottom: 13px;
	}

	#page50 .monthly h2,
	#page50 .pack h2,
	#page50 .extra h2,
	#page50 .tables h2 {
		margin-bottom: 20px;
		font-size: 23px;
		letter-spacing: 0.03em;
		line-height: 32.5px;
	}

	#page50 .monthly-photos {
		display: flex;
		gap: 10px;
		margin-top: 24px;
	}

	#page50 .monthly-photos img,
	#page50 .pack-photos img {
		width: 150px;
		height: 92px;
		margin: 0;
		border-radius: 10px;
		object-fit: cover;
	}

	#page50 .monthly-card {
		margin: 31px -31.5px 0;
		padding: 32px 44.5px 30px;
	}

	#page50 .price-label {
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 17px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 26px;
		text-align: center;
	}

	#page50 .price {
		color: #0098bc;
		font-size: 30px;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 36px;
		text-align: center;
	}

	#page50 .monthly .price {
		margin-top: 6px;
	}

	#page50 .fee-table {
		margin-top: 15px;
	}

	#page50 .fee-table div {
		display: flex;
		align-items: center;
		gap: 0;
		min-height: 47.5px;
		padding: 0 21.5px 0 18px;
		border: 0;
		border-radius: 5px;
		background: #edf5f8;
	}

	#page50 .fee-table div+div {
		margin-top: 3px;
	}

	#page50 .fee-table div::after,
	#page50 .tables .plain div::after {
		content: "";
		order: 1;
		flex: 1;
		margin: 0 5px;
		border-top: 1px dotted #9a9a9a;
	}

	#page50 .fee-table dt {
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 14.5px;
		font-weight: 700;
		letter-spacing: 0.1em;
		line-height: 19px;
	}

	#page50 .fee-table dt span {
		display: block;
	}

	#page50 .fee-table dd {
		order: 2;
		color: #0098bc;
		font-size: 17px;
		font-weight: 500;
		letter-spacing: 0.05em;
	}

	#page50 .fee-table dd span {
		font-size: 11px;
	}

	/* ---------- 50 Pack ---------- */
	#page50 .pack,
	#page50 .extra {
		margin-bottom: 60px;
		padding: 0 44px;
	}

	#page50 .pack .sec-head,
	#page50 .extra .sec-head {
		margin-bottom: 25px;
	}

	#page50 .pack-card {
		margin: 0 -31.5px;
		padding: 37px 44.5px 47px;
	}

	#page50 .pack-head {
		text-align: center;
	}

	#page50 .pack-head h3 {
		color: #4a4a4a;
		font-size: 17px;
		letter-spacing: 0.15em;
		line-height: 26px;
	}

	#page50 .pack-head .price {
		margin-top: 7px;
	}

	#page50 .pack-head .price .unit {
		display: none;
	}

	#page50 .pack-lead {
		margin-top: 17px;
		text-align: center;
	}

	#page50 .pack-photos {
		display: flex;
		justify-content: center;
		gap: 10px;
		margin: 22px -32px 0;
	}

	#page50 .pack-card ul {
		margin-top: 30px;
	}

	#page50 .pack-card li {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 47.5px;
		margin: 0;
		padding: 0 18px;
		border-radius: 5px;
		background: #edf5f8;
		color: #4a4a4a;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 15px;
		font-weight: 700;
		letter-spacing: 0.1em;
		line-height: 19px;
	}

	#page50 .pack-card li+li {
		margin-top: 3px;
	}

	#page50 .pack-card small {
		font-size: 15px;
	}

	#page50 .pack-card .center-note {
		max-width: none;
		margin: 20px -33px 0;
		padding: 0 0 0 17px;
	}

	/* ---------- 50 Extra : cards stacked, 272px ---------- */
	#page50 .extra {
		margin-bottom: 61px;
	}

	#page50 .extra-list {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 5.5px;
	}

	#page50 .extra-list li {
		width: 272px;
		max-width: 100%;
		margin: 0;
		padding: 12px 15px 17px;
		border-radius: 15px;
		background: #fff;
		box-shadow: 0 0 12px rgba(0, 98, 121, 0.08);
		text-align: center;
	}

	#page50 .extra-list img {
		width: 96px;
		height: 96px;
		margin: 0 auto;
		border-radius: 0;
		object-fit: contain;
	}

	#page50 .extra-list h3 {
		margin: 11px 0 8px;
		font-size: 17px;
		letter-spacing: 0.12em;
		line-height: 26px;
	}

	#page50 .extra-list h3.is-care {
		color: #65b243;
	}

	#page50 .extra-list h3.is-evening {
		color: #ddae34;
	}

	#page50 .extra-list p {
		font-size: 14px;
		line-height: 23.5px;
		text-align: center;
	}

	/* ---------- 50 Tables : two stacked 380px cards ---------- */
	#page50 .tables {
		margin-bottom: 0;
		padding: 0 10px;
	}

	#page50 .tables>div {
		margin: 0;
		padding: 42px 30px 44.5px;
		border-radius: 15px;
		background: #fff;
		box-shadow: 0 0 12px rgba(0, 98, 121, 0.08);
		text-align: center;
	}

	#page50 .tables>div+div {
		margin-top: 60.5px;
		padding-bottom: 39px;
	}

	#page50 .tables .en {
		margin-bottom: 9px;
		text-align: center;
	}

	#page50 .tables h2 {
		margin-bottom: 21px;
	}

	#page50 .tables p:not(.en) {
		text-align: center;
	}

	#page50 .tables dl {
		width: 256px;
		max-width: 100%;
		margin: 24.5px auto 0;
	}

	#page50 .tables dl div {
		display: grid;
		grid-template-columns: 120px 1fr;
		column-gap: 6px;
		padding: 0;
		border: 0;
	}

	#page50 .tables dl div+div {
		margin-top: 2px;
	}

	#page50 .tables dt {
		height: 36px;
		border-radius: 3px;
		background: #74ccd8;
		color: #fff;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 14px;
		font-weight: 700;
		letter-spacing: 0.15em;
		line-height: 36px;
		text-align: center;
	}

	#page50 .tables dd {
		padding-right: 35px;
		border-bottom: 1px solid #cfe6ec;
		color: #4a4a4a;
		font-size: 15px;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 35px;
		text-align: right;
	}

	#page50 .tables dl.plain {
		width: auto;
		margin-top: 21px;
	}

	#page50 .tables .plain div {
		display: flex;
		align-items: center;
		min-height: 30px;
	}

	#page50 .tables .plain div+div {
		margin-top: 0;
	}

	#page50 .tables .plain dt {
		position: relative;
		height: auto;
		padding-left: 16.5px;
		background: none;
		color: #4a4a4a;
		font-family: "Noto Sans JP", sans-serif;
		font-weight: 500;
		letter-spacing: 0.06em;
		line-height: 22px;
		text-align: left;
	}

	#page50 .tables .plain dt::before {
		content: "";
		position: absolute;
		top: calc(50% - 5px);
		left: 0;
		width: 10px;
		height: 10px;
		border-radius: 50%;
		background: #74ccd8;
	}

	#page50 .tables .plain dd {
		order: 2;
		padding: 0;
		border: 0;
		font-size: 14px;
		letter-spacing: 0.06em;
		line-height: 22px;
	}

	/* ---------- 50 FAQ : one-line heading may overhang the lead's padding ---------- */
	#page50 .faq {
		margin-top: 60px;
	}

	#page50 .faq .sec-head h2 {
		margin-right: -30px;
		margin-left: -40px;
		white-space: nowrap;
	}

	#page30 .mv,
	#page40 .mv,
	#page50 .mv {
		display: flex;
		flex-direction: column;
	}

	#page30 .mv-img {
		order: -1;
		height: 210px;
		margin: 0 0 18px;
		border-radius: 22px;
	}

	#page30 .mv h1 {
		font-size: 26px;
	}

	#page30 .mv h2,
	#page40 .mv h2,
	#page50 .mv h2 {
		color: #0098bc;
		font-size: 20px;
	}

	#page30 .sec-head,
	#page30 .sec-head .en,
	#page30 .sec-head h2,
	#page30 .sec-head p:not(.en) {
		text-align: left;
	}

	#page30 .feature-list li {
		position: relative;
		margin-bottom: 32px;
	}

	#page30 .feature-list li::after {
		content: "";
		position: absolute;
		top: 12px;
		right: 12px;
		width: 25px;
		height: 25px;
		background: #F6DE0E;
		border-radius: 180px;
		opacity: 0.6;
	}

	#page30 .feature-list img {
		width: 100%;
		height: 168px;
		margin: 0;
		border-radius: 0;
		object-fit: cover;
		clip-path: ellipse(72% 100% at 50% 0%);
	}

	/* feature-img-wrap on SMP: ellipse clip on wrapper image */
	#page30 .feature-img-wrap {
		height: 168px;
	}

	#page30 .feature-img-wrap img {
		clip-path: none;
		border-radius: 22px 22px 0 0;
	}

	/* SMP corners: top-left top-right rounded */
	#page30 .feature-list li {
		overflow: hidden;
	}

	/* feature-icon on SMP — small yellow dot */
	#page30 .feature-icon {
		width: 14px;
		height: 14px;
		margin: -7px auto 0;
	}


	/* feature-curve on SMP */
	#page30 .feature-curve {
		height: 30px;
	}

	#page30 .feature-list .en,
	#page30 .feature-list .num,
	#page30 .feature-list h3,
	#page30 .feature-list p {
		text-align: center;
	}

	#page30 .feature-list .num {
		margin-top: -4px;
		font-size: 22px;
	}

	#page30 .visit {
		display: flex;
		flex-direction: column;
		padding: 22px 16px 20px;
		border-radius: 28px;
		background: linear-gradient(165deg, #fffcf0 0%, #f5faef 55%, #e1f4fa 100%);
	}

	#page30 .visit-text {
		display: contents;
	}

	#page30 .visit .en {
		order: 0;
	}

	#page30 .visit h2 {
		order: 1;
		margin-bottom: 12px;
		font-size: 22px;
	}

	#page30 .visit-img {
		position: relative;
		order: 2;
		height: auto;
		width: 100%;
		margin: 0 0 16px;
		border-radius: 12px;
		top: auto;
		left: auto;
	}

	#page30 .visit-img img {
		position: static;
		width: 100%;
		height: auto;
	}

	#page30 .visit h3 {
		order: 3;
		margin-bottom: 8px;
		font-size: 16px;
	}

	#page30 .visit-text>p:not(.en) {
		order: 4;
		margin-bottom: 20px;
	}

	#page30 .visit .btn-row {
		order: 5;
	}

	#page30 .support-list li {
		align-items: flex-start;
		border-bottom: 0;
		padding-bottom: 0;
	}

	#page30 .support-list img {
		width: 72px;
		height: 72px;
		border-radius: 50%;
		object-fit: cover;
	}

	#page30 .daily .day-list li {
		position: relative;
		padding-bottom: 8px;
	}

	#page30 .daily .day-list li::before {
		content: "";
		position: absolute;
		top: 8px;
		bottom: -8px;
		left: 27px;
		width: 2px;
		background: #e6eef1;
	}

	#page30 .daily .day-list li:last-child::before {
		display: none;
	}

	#page30 .daily .day-list li>p:not(.en)::before,
	#page30 .daily .day-list li>p:not(.en)::after {
		display: none;
	}

	#page30 .life-list li {
		align-items: center;
		border-bottom: 0;
		padding-bottom: 0;
	}

	#page30 .partner-list,
	#page40 .partner-list {
		display: flex;
		flex-direction: column;
		gap: 16px;
		text-align: center;
	}

	#page30 .partner-list li,
	#page40 .partner-list li {
		margin: 0;
		padding: 22px 16px 18px;
		border-radius: 18px;
		background: #fff;
		box-shadow: 0 8px 24px rgba(40, 90, 110, 0.08);
		text-align: center;
	}

	#page30 .partner-list img,
	#page40 .partner-list img {
		width: 72px;
		height: 72px;
		margin: 0 auto 10px;
		border-radius: 0;
		object-fit: contain;
	}

	#page30 .partner-list h3,
	#page40 .partner-list h3,
	#page30 .partner-list p,
	#page40 .partner-list p {
		text-align: center;
	}

	#page30 .steps {
		padding: 0;
		border-radius: 18px;
		background: #fff;
		box-shadow: 0 8px 24px rgba(40, 90, 110, 0.08);
	}

	#page30 .steps li {
		flex-direction: row;
		align-items: flex-start;
		gap: 12px;
		margin: 0;
		padding: 14px 14px 14px 14px;
		border-left: none;
		border-top: 1px solid #e8f4f8;
		border-bottom: 1px solid #e8f4f8;
	}

	#page30 .steps li:first-child {
		border-top: none;
	}

	#page30 .steps li:last-child {
		border-bottom: none;
	}

	/* step-no sub-spans on SMP */
	#page30 .step-no {
		width: 52px;
		flex-shrink: 0;
	}

	#page30 .step-word {
		font-size: 10px;
	}

	#page30 .step-num {
		font-size: 18px;
	}

	#page30 .steps h3 {
		font-size: 18px;
	}
}

/* ============================================================
   30.入居をお考えの方へ — 追加スタイル
   contact-banner / pill variants / FAQ accordion state
   ============================================================ */

/* ----------------------------------------------------------
   FAQ accordion: JS adds .is-open; icon switches ＋ → −
   ---------------------------------------------------------- */
.faq-list details.is-open summary::after {
	content: "−";
}

.faq-list details.is-open:not([open]) summary::after {
	content: "−";
}

/* ----------------------------------------------------------
   Button variants used in .contact-banner
   ---------------------------------------------------------- */

/* .pill.is-yellow — same warm-gold as site footer form btn */
#page30 .pill.is-yellow {
	background: #F5C23E;
	border-color: #F5C23E;
	color: #fff;
}

@media (hover: hover) and (pointer: fine) and (min-width: 1025px) {

	#page30 .pill.is-yellow:hover {
		background: #fff;
		border-color: #F5C23E;
		color: #DDAE34;
	}

	#page30 .pill.is-yellow:hover::after {
		border-top-color: #F5C23E;
		border-right-color: #F5C23E;
	}
}

/* .btn.is-green.is-line — LINE green CTA button */
#page30 .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 58px;
	padding: 0 28px;
	border-radius: 40px;
	border: 2px solid transparent;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 20px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.4s, color 0.4s, border-color 0.4s;
	box-shadow: 0 8px 18px rgba(0, 98, 121, 0.2);
}

#page30 .btn.is-green {
	background: #3EC676;
	border-color: #3EC676;
	color: #fff;
}

@media (hover: hover) and (pointer: fine) and (min-width: 1025px) {
	#page30 .btn.is-green:hover {
		background: #fff;
		border-color: #3EC676;
		color: #3EC676;
	}
}

/* LINE icon pseudo-element */
#page30 .btn.is-line::before {
	content: "";
	display: inline-block;
	width: 22px;
	height: 22px;
	margin-right: 10px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M16 2C8.268 2 2 7.477 2 14.2c0 4.02 2.14 7.59 5.457 9.928-.24.88-.773 3.19-.885 3.69-.14.62.227.615.478.448.197-.134 3.13-2.073 4.4-2.913A16.9 16.9 0 0016 25.4c7.732 0 14-5.477 14-12.2S23.732 2 16 2z'/%3E%3C/svg%3E") center/contain no-repeat;
	flex-shrink: 0;
}

/* ----------------------------------------------------------
   .contact-banner section — base (shared)
   ---------------------------------------------------------- */
#page30 .contact-banner {
	box-sizing: border-box;
}

.contact-cards {
	display: flex;
	gap: 24px;
	justify-content: center;
	flex-wrap: wrap;
}

.contact-cards .card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 36px 32px;
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(40, 90, 110, 0.1);
	text-align: center;
	box-sizing: border-box;
}

.contact-cards .card>p:first-child {
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 700;
	color: #4a4a4a;
}

/* Phone card */
.contact-cards .card-phone {
	border-top: 4px solid #e5855f;
}

.card-phone .tel {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 28px;
	font-weight: 700;
	color: #4a4a4a;
	letter-spacing: 1px;
}

.card-phone .tel .montserrat {
	font-size: 16px;
	font-weight: 500;
	color: #0098bc;
}

.card-phone .time {
	font-size: 14px;
	color: #888;
	line-height: 1.5;
}

/* LINE card */
.contact-cards .card-line {
	border-top: 4px solid #3EC676;
}

/* Email card */
.contact-cards .card-email {
	border-top: 4px solid #F5C23E;
}

/* ----------------------------------------------------------
   PC (≥1025px) — contact-banner
   ---------------------------------------------------------- */
@media only screen and (min-width: 1025px) {
	#page30 .contact-banner {
		width: 1280px;
		max-width: 100%;
		margin: 0 auto 100px;
	}

	#page30 .contact-banner .sec-head {
		margin-bottom: 48px;
	}

	.contact-cards .card {
		width: calc(33.33% - 16px);
		min-width: 280px;
		flex: 1 1 280px;
	}

	.card-phone .tel {
		font-size: 30px;
	}

	#page30 .btn {
		width: 100%;
		min-width: 220px;
	}

	#page30 .pill.is-yellow {
		min-width: 220px;
		width: 100%;
	}
}

/* ----------------------------------------------------------
   MOBILE (≤768px) — contact-banner & button stacking
   ---------------------------------------------------------- */
@media only screen and (max-width: 768px) {

	/* contact-banner full width */
	#page30 .contact-banner {
		width: 100%;
		padding: 0 16px;
		margin: 0 auto 48px;
	}

	/* Stack cards vertically, full width */
	.contact-cards {
		flex-direction: column;
		gap: 16px;
	}

	.contact-cards .card {
		width: 100%;
		padding: 24px 20px;
		border-radius: 20px;
	}

	.card-phone .tel {
		font-size: 22px;
	}

	/* Stack visit section buttons vertically, 100% wide */
	#page30 .visit .btn-row {
		flex-direction: column;
		gap: 10px;
	}

	#page30 .visit .btn-row .pill {
		width: 100%;
		min-width: 0;
	}

	/* Full-width LINE and email buttons in cards */
	#page30 .btn.is-green,
	#page30 .pill.is-yellow {
		width: 100%;
		font-size: 16px;
		height: 50px;
	}
}

/* ----------------------------------------------------------
   SMP (≤1024px) — multi-column → single column stacking
   (complements existing page01.css SMP rules)
   ---------------------------------------------------------- */
@media only screen and (max-width: 1024px) {

	/* feature-list: already stacked by existing rules;
	   ensure full-width card imagery */
	#page30 .feature-list {
		display: flex;
		flex-direction: column;
		gap: 24px;
	}

	#page30 .feature-list li {
		width: 100%;
	}

	/* partner-list: single column (already handled but reaffirm) */
	#page30 .partner-list {
		display: flex;
		flex-direction: column;
	}

	/* life-list: single column */
	#page30 .daily .life-list {
		display: flex;
		flex-direction: column;
		gap: 16px;
		margin-top: 32px;
	}

	#page30 .daily .life-list li {
		width: 100%;
		margin: 0;
	}

	/* support-list: single column */
	#page30 .support-list {
		display: flex;
		flex-direction: column;
	}

	#page30 .support-list li {
		width: 100%;
	}

	/* contact-banner */
	#page30 .contact-banner {
		width: 100%;
		padding: 0 16px;
		margin: 0 auto 48px;
	}

	.contact-cards {
		flex-direction: column;
		gap: 16px;
	}

	.contact-cards .card {
		width: 100%;
	}

	/* BTN sizing on SMP */
	#page30 .btn {
		width: 100%;
		height: 50px;
		font-size: 15px;
	}

	#page30 .pill.is-yellow {
		width: 100%;
		min-width: 0;
		height: 50px;
		font-size: 15px;
	}
}

/* ============================================================
   br.pc — PC-only line breaks (hidden on SMP)
   ============================================================ */
br.pc {
	display: block;
}

@media only screen and (max-width: 1024px) {
	br.pc {
		display: none;
	}
}

/* ============================================================
   PC-only overrides (≥ 769px) — director corrections
   ============================================================ */
@media only screen and (min-width: 769px) {

	/* FAQ section: 90px bottom margin to footer */
	#page30 .faq {
		margin-bottom: 90px;
	}

	/* FAQ sec-head paragraph centered */
	#page30 .faq .sec-head p:not(.en) {
		text-align: center;
		margin: 0 auto;
	}

	/* FAQ sec-head h2 centered */
	#page30 .faq .sec-head {
		text-align: center;
	}
}

/* ============================================================
   SMP additional overrides (≤ 1024px) — director corrections
   ============================================================ */
@media only screen and (max-width: 1024px) {

	/* features sec-head: center on SMP */
	#page30 .features .sec-head,
	#page30 .features .sec-head .en,
	#page30 .features .sec-head h2 {
		text-align: center;
	}

	/* daily-bg-wrap: remove background image on SMP (performance) */
	.daily-bg-wrap {
		background: none;
	}

	.daily-bg-wrap::before {
		display: none;
	}

	/* support-list icon: smaller on SMP */
	#page30 .support-list img {
		width: 72px;
		height: 72px;
		border-radius: 50%;
		object-fit: cover;
		flex-shrink: 0;
	}

	/* support-list sec-head desc left-aligned on SMP */
	#page30 .support .sec-head p:not(.en),
	#page30 .partners .sec-head p:not(.en) {
		text-align: left;
	}

	/* steps: ensure base .steps border-radius doesn't conflict */
	.steps {
		box-shadow: none;
		background: transparent;
		border-radius: 0;
	}
}

/* ==========================================================================
   30.入居をお考えの方へ — XD alignment pass (v2)
   Paste at the VERY END of page01.css (it overrides earlier #page30 rules).
   Every selector is scoped to #page30 so page40 / page50 are untouched.
   Values measured from the XD comps embedded in 30-rasic.xlsx:
     PC  : 1500px artboard, 1280px content  → XD px = CSS px
     SMP : 800px artboard                    → XD px ÷ 2 = CSS px
   ========================================================================== */

/* --------------------------------------------------------------------------
   Shared type scale (both breakpoints use em letter-spacing like XD)
   -------------------------------------------------------------------------- */
#page30 h1,
#page30 h2,
#page30 h3,
#page40 h1,
#page40 h2,
#page40 h3,
#page40 h4,
#page50 h1,
#page50 h2,
#page50 h3 {
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 700;
}

#page30 .en,
#page40 .en,
#page50 .en {
	font-family: "Montserrat", sans-serif;
	font-weight: 500;
	color: #0098bc;
	letter-spacing: 0.05em;
}


/* ==========================================================================
   PC  (≥1025px)
   ========================================================================== */
@media only screen and (min-width: 1025px) {

	/* ---------- Body copy (20px / 35px / 0.08em) ---------- */
	#page30 p:not(.en):not(.num):not(.step-no),
	#page40 p:not(.en):not(.num):not(.step-no),
	#page50 p {
		font-size: 20px;
		line-height: 35px;
		letter-spacing: 0.08em;
	}

	/* ---------- Section headings ---------- */
	#page30 .sec-head h2,
	#page40 .sec-head h2,
	#page50 .sec-head h2 {
		font-size: 40px;
		line-height: 1.625;
		letter-spacing: 0.1em;
	}

	#page30 .sec-head .en,
	#page40 .sec-head .en,
	#page50 .sec-head .en {
		margin-bottom: 10px;
		font-size: 16px;
	}

	/* ---------- MV : image bleeds to the right edge ---------- */
	#page30 .mv,
	#page40 .mv,
	#page50 .mv {
		position: relative;
		display: block;
		width: 100%;
		max-width: none;
		height: 587px;
		margin: 0 0 110px;
	}

	#page30 .mv-text,
	#page40 .mv-text,
	#page50 .mv-text {
		position: relative;
		z-index: 1;
		width: 415px;
		margin-left: max(20px, calc(50% - 605px));
		padding-top: 95px;
	}

	#page30 .mv .en,
	#page40 .mv .en,
	#page50 .mv .en {
		margin-bottom: 18px;
		font-size: 16px;
	}

	#page30 .mv h1,
	#page40 .mv h1,
	#page50 .mv h1 {
		margin-bottom: 38px;
		font-size: 38px;
		letter-spacing: 0.12em;
		line-height: 1.3;
	}

	#page30 .mv h1::after,
	#page40 .mv h1::after,
	#page50 .mv h1::after {
		width: 60px;
		height: 4px;
		margin-top: 22px;
		border-radius: 2px;
		background: #2eabc4;
	}

	#page30 .mv h2,
	#page40 .mv h2,
	#page50 .mv h2 {
		margin-bottom: 26px;
		font-size: 30px;
		letter-spacing: 0.1em;
		line-height: 1.6;
	}

	#page30 .mv-img,
	#page40 .mv-img,
	#page50 .mv-img {
		position: absolute;
		top: 0;
		right: 0;
		left: calc(50% - 130px);
		z-index: 0;
		width: auto;
		height: 587px;
		border-radius: 0;
		overflow: visible;
	}

	/* dotted halo behind the photo (left + bottom), pure CSS */
	#page30 .mv-img::before,
	#page40 .mv-img::before,
	#page50 .mv-img::before {
		content: "";
		position: absolute;
		top: 30px;
		right: 0;
		bottom: -24px;
		left: -30px;
		z-index: -1;
		border-radius: 60px 0 0 60px;
		background: radial-gradient(circle, #cfe8f0 2px, transparent 2.6px) 0 0 / 12px 12px;
	}

	#page30 .mv-img img,
	#page40 .mv-img img,
	#page50 .mv-img img {
		width: 100%;
		height: 100%;
		border-radius: 40px 0 0 40px;
		object-fit: cover;
	}

	/* ---------- Features : 3 × 420px, 10px gap, no card chrome ---------- */
	#page30 .features {
		margin-bottom: 88px;
	}

	#page30 .features .sec-head {
		margin-bottom: 48px;
	}

	#page30 .feature-list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 420px));
		column-gap: 10px;
		justify-content: center;
		width: 100%;
		margin: 0;
		padding: 0;
	}

	#page30 .feature-list li {
		position: relative;
		width: auto;
		padding: 0;
		border-radius: 0;
		background: none;
		box-shadow: none;
		overflow: visible;
	}

	#page30 .feature-list li::after {
		content: none;
	}

	#page30 .feature-img-wrap {
		position: relative;
		height: 280px;
		border-radius: 20px 20px 0 0;
		overflow: hidden;
	}

	/* white arch: apex 164px from top, meets card edges at ~217px */
	#page30 .feature-curve {
		position: absolute;
		top: 164px;
		right: -28px;
		bottom: auto;
		left: -28px;
		height: 200px;
		border-radius: 50%;
		background: #fff;
	}

	/* pale yellow dot tucked behind the "0" of 01/02/03 */
	#page30 .feature-icon {
		position: absolute;
		top: 222px;
		left: calc(50% - 34px);
		z-index: 1;
		width: 25px;
		height: 25px;
		margin: 0;
		border-radius: 50%;
		background: #F6DE0E;
		opacity: 0.6;
	}

	#page30 .feature-list .en {
		position: relative;
		z-index: 2;
		margin: -78px 0 0;
		color: #30a5c1;
		font-size: 16px;
		line-height: 1.3;
		text-align: center;
	}

	#page30 .feature-list .num {
		position: relative;
		z-index: 2;
		color: #30a5c1;
		font-size: 34px;
		font-weight: 600;
		line-height: 1.2;
		text-align: center;
	}

	#page30 .feature-list h3 {
		margin: 18px 0 22px;
		color: #0098bc;
		font-size: 26px;
		letter-spacing: 0.13em;
		line-height: 1.65;
		text-align: center;
	}

	#page30 .feature-list li>p:last-child {
		padding: 0 15px;
		text-align: left;
	}

	/* ---------- Visit : bg box bleeds right, photo bleeds left ---------- */
	#page30 .visit {
		position: relative;
		display: block;
		width: 100%;
		max-width: none;
		height: auto;
		min-height: 622px;
		margin: 0 0 100px;
		padding: 92px 20px 90px max(560px, calc(50% - 150px));
		border-radius: 0;
		background: none;
		overflow: visible;
	}

	#page30 .visit::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: max(20px, calc(50% - 640px));
		z-index: 0;
		border-radius: 80px 0 0 80px;
		/* XDの水彩画像（不透明度90%） */
		background: url("../images/page30/visit-bg.webp") center / cover;
		opacity: 0.9;
	}

	#page30 .visit-img {
		position: absolute;
		top: 90px;
		bottom: auto;
		left: 0;
		z-index: 1;
		width: max(460px, calc(50% - 250px));
		height: 375px;
		border-radius: 0 20px 20px 0;
		overflow: hidden;
	}

	#page30 .visit-text {
		position: relative;
		z-index: 1;
		max-width: 770px;
		padding: 0;
	}

	#page30 .visit .en {
		margin-bottom: 20px;
		font-size: 16px;
	}

	#page30 .visit h2 {
		margin-bottom: 30px;
		font-size: 38px;
		letter-spacing: 0.1em;
		line-height: 1.5;
	}

	#page30 .visit h3 {
		margin-bottom: 32px;
		color: #0098bc;
		font-size: 30px;
		letter-spacing: 0.12em;
		line-height: 1.5;
	}

	#page30 .visit .btn-row {
		gap: 20px;
		margin-top: 36px;
	}

	#page30 .visit .pill {
		width: 375px;
		min-width: 0;
		height: 80px;
		border-radius: 40px;
		font-size: 22px;
		letter-spacing: 0.1em;
	}

	/* ---------- Support : 2 × 610px, 60px gap, full-width dashed rows ---------- */
	#page30 .support .sec-head,
	#page40 .support .sec-head {
		margin-bottom: 20px;
	}

	#page30 .support-list,
	#page40 .support-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 610px));
		column-gap: 60px;
		justify-content: center;
		margin: 0;
		padding: 0;
	}

	#page30 .support-list li,
	#page40 .support-list li {
		position: relative;
		display: grid;
		grid-template-columns: 200px 1fr;
		column-gap: 20px;
		align-items: center;
		width: auto;
		min-height: 261px;
		margin: 0;
		padding: 0;
		border-bottom: 2px dashed #e1e1e1;
	}

	/* bridge the 60px gutter so each dashed line reads as one line */
	#page30 .support-list li:nth-child(odd)::after,
	#page40 .support-list li:nth-child(odd)::after {
		content: "";
		position: absolute;
		bottom: -2px;
		left: 100%;
		width: 60px;
		border-bottom: 2px dashed #e1e1e1;
	}

	#page30 .support-list img,
	#page40 .support-list img {
		justify-self: center;
		width: 170px;
		height: 170px;
		border-radius: 0;
		object-fit: contain;
	}

	#page30 .support-list h3,
	#page40 .support-list h3 {
		margin-bottom: 12px;
		color: #0098bc;
		font-size: 24px;
		letter-spacing: 0.12em;
		line-height: 1.75;
	}

	#page30 .support .center-note {
		margin-top: 58px;
		text-align: center;
	}

	/* ---------- Daily-bg wrapper now also contains .flow (see PHP note) ---------- */
	#page30 .daily-bg-wrap {
		padding-bottom: 100px;
	}

	/* ---------- Daily ---------- */
	#page30 .daily {
		margin-bottom: 90px;
		padding-top: 130px;
	}

	#page30 .daily .sec-head {
		margin-bottom: 57px;
		padding-left: 113px;
	}

	#page30 .daily .sec-head h2 {
		margin-bottom: 30px;
		font-size: 40px;
		letter-spacing: 0.1em;
		line-height: 1.625;
	}

	#page30 .daily .sec-head p:not(.en) {
		font-size: 20px;
		line-height: 35px;
		letter-spacing: 0.08em;
	}

	#page30 .daily .day-list {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		column-gap: 36px;
		margin: 0;
		padding: 0 0 0 10px;
	}

	#page30 .daily .day-list::before {
		top: 113px;
		right: 0;
		left: 0;
		height: 2px;
		background: #9fd7e5;
	}

	#page30 .daily .day-list li {
		display: grid;
		grid-template-columns: 90px 1fr;
		column-gap: 13px;
		align-items: center;
	}

	#page30 .daily .day-list img {
		grid-row: 1 / span 2;
		width: 90px;
		height: 90px;
		border-radius: 50%;
		background: #fff;
		object-fit: contain;
	}

	#page30 .daily .day-list .en {
		align-self: end;
		font-size: 16px;
		font-weight: 500;
	}

	#page30 .daily .day-list h3 {
		align-self: start;
		margin: 4px 0 0;
		color: #4a4a4a;
		font-size: 22px;
		letter-spacing: 0.1em;
	}

	#page30 .daily .day-list li>p:not(.en) {
		margin: 46px 0 0;
		padding: 0;
		border-top: 0;
	}

	/* coloured dot sitting on the 2px timeline */
	#page30 .daily .day-list li>p:not(.en)::after {
		top: -31px;
		left: 134px;
		width: 16px;
		height: 16px;
		transform: none;
	}

	#page30 .daily .life-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 610px));
		gap: 40px 60px;
		justify-content: center;
		margin: 65px 0 0;
		padding: 0;
	}

	#page30 .daily .life-list li {
		display: grid;
		grid-template-columns: 180px 1fr;
		column-gap: 40px;
		align-items: center;
	}

	#page30 .daily .life-list img {
		width: 180px;
		height: 180px;
		border: 6px solid #fff;
		border-radius: 50%;
		object-fit: cover;
	}

	#page30 .daily .life-list h3 {
		margin-bottom: 12px;
		font-size: 24px;
		letter-spacing: 0.12em;
		line-height: 1.75;
	}

	/* ---------- Partners : 3 × 400px white cards, 10px gap ---------- */
	#page30 .partners {
		margin-bottom: 87px;
	}

	#page30 .partners .sec-head {
		margin-bottom: 70px;
	}

	#page30 .partner-list,
	#page40 .partner-list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 400px));
		column-gap: 10px;
		justify-content: center;
		margin: 0;
		padding: 0;
	}

	#page30 .partner-list li,
	#page40 .partner-list li {
		width: auto;
		min-height: 390px;
		padding: 37px 45px 40px;
		border-radius: 24px;
		background: #fff;
		box-shadow: 0 0 24px rgba(0, 98, 121, 0.08);
	}

	#page30 .partner-list img,
	#page40 .partner-list img {
		width: 160px;
		height: 150px;
		margin: 0 auto 14px;
		border-radius: 0;
		background: none;
		object-fit: contain;
	}

	#page30 .partner-list h3,
	#page40 .partner-list h3 {
		margin-bottom: 18px;
		font-size: 24px;
		letter-spacing: 0.12em;
		text-align: center;
	}

	#page30 .partner-list li>p,
	#page40 .partner-list li>p {
		text-align: left;
	}

	#page30 .partners .center-note {
		margin-top: 60px;
		text-align: center;
	}

	/* ---------- Flow : white rounded card, 1210px ---------- */
	#page30 .flow {
		position: relative;
		width: 1210px;
		max-width: calc(100% - 40px);
		margin: 0 auto;
		padding: 88px 130px 90px;
		border-radius: 60px;
		background: #fff;
		box-shadow: 0 0 30px rgba(0, 98, 121, 0.1);
		overflow: hidden;
	}

	/* dotted accent, top-right */
	#page30 .flow::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		width: 320px;
		height: 300px;
		background: radial-gradient(circle, rgba(140, 205, 190, 0.55) 2.5px, transparent 3px) 0 0 / 14px 14px;
		-webkit-mask-image: radial-gradient(circle at 55% 45%, #000 35%, transparent 70%);
		mask-image: radial-gradient(circle at 55% 45%, #000 35%, transparent 70%);
		pointer-events: none;
	}

	#page30 .flow .sec-head {
		position: relative;
		width: auto;
		margin-bottom: 45px;
	}

	#page30 .steps,
	#page40 .steps {
		width: 950px;
		max-width: 100%;
		margin: 0 auto;
		padding: 0;
		border-top: 2px solid #d9e3e6;
		border-radius: 0;
		background: none;
		box-shadow: none;
	}

	#page30 .steps li,
	#page40 .steps li {
		position: relative;
		display: grid;
		grid-template-columns: 106px 1fr;
		gap: 0;
		align-items: stretch;
		min-height: 123px;
		padding: 0;
		border-top: 0;
		border-bottom: 2px solid #d9e3e6;
	}

	#page30 .steps li:last-child,
	#page40 .steps li:last-child {
		border-bottom: 2px solid #d9e3e6;
	}

	#page30 .step-no,
	#page40 .step-no {
		position: relative;
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: baseline;
		gap: 5px;
		width: auto;
		padding-top: 32px;
		background: #ecf6f9;
	}

	#page30 .steps li:nth-child(2) .step-no,
	#page40 .steps li:nth-child(2) .step-no {
		background: #bee6ec;
	}

	#page30 .steps li:nth-child(3) .step-no,
	#page40 .steps li:nth-child(3) .step-no {
		background: #aadfe6;
	}

	#page30 .steps li:nth-child(4) .step-no,
	#page40 .steps li:nth-child(4) .step-no {
		background: #96d9e1;
	}

	/* chevron pointing into the next row */
	#page30 .steps li:not(:last-child) .step-no::after,
	#page40 .steps li:not(:last-child) .step-no::after {
		content: "";
		position: absolute;
		top: calc(100% + 2px);
		left: 0;
		z-index: 2;
		border-style: solid;
		border-width: 16px 53px 0;
		border-color: #ecf6f9 transparent transparent;
	}

	#page30 .steps li:nth-child(2) .step-no::after,
	#page40 .steps li:nth-child(2) .step-no::after {
		border-top-color: #bee6ec;
	}

	#page30 .steps li:nth-child(3) .step-no::after,
	#page40 .steps li:nth-child(3) .step-no::after {
		border-top-color: #aadfe6;
	}

	#page30 .step-word,
	#page40 .step-word {
		font-size: 12px;
		font-weight: 500;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	#page30 .step-num,
	#page40 .step-num {
		font-size: 22px;
		font-weight: 500;
	}

	#page30 .steps li>div {
		padding: 27px 0 27px 47px;
	}

	#page30 .steps h3 {
		margin-bottom: 10px;
		font-size: 22px;
		letter-spacing: 0.15em;
	}

	/* ---------- FAQ ---------- */
	#page30 .faq,
	#page40 .faq {
		margin-top: 100px;
		margin-bottom: 90px;
	}

	#page30 .faq .sec-head,
	#page40 .faq .sec-head,
	#page50 .faq .sec-head {
		margin-bottom: 45px;
	}

	#page30 .faq-list,
	#page40 .faq-list,
	#page50 .faq-list {
		width: 980px;
	}

	#page30 .faq-list details,
	#page40 .faq-list details,
	#page50 .faq-list details {
		padding: 30px 0;
		border: 0;
		/* client: no underline between questions */
	}

	#page30 .faq-list summary,
	#page40 .faq-list summary,
	#page50 .faq-list summary {
		gap: 30px;
		padding-left: 10px;
		font-size: 22px;
		letter-spacing: 0.15em;
		line-height: 1.6;
	}

	#page30 .faq-list summary .q,
	#page40 .faq-list summary .q,
	#page50 .faq-list summary .q {
		width: auto;
		font-size: 26px;
		letter-spacing: 0;
	}

	#page30 .faq-list summary::after,
	#page40 .faq-list summary::after,
	#page50 .faq-list summary::after {
		font-size: 26px;
		line-height: 1.3;
	}

	#page30 .faq-list details p,
	#page40 .faq-list details p,
	#page50 .faq-list details p {
		padding: 14px 0 0 72px;
		/* 10px + Q. (~32px) + 30px gap */
	}
}


/* ==========================================================================
   SMP  (≤1024px)  — base 400px, XD ÷ 2
   ========================================================================== */
@media only screen and (max-width: 1024px) {

	/* ---------- Body copy (15px / 30px / 0.08em) ---------- */
	#page30 p:not(.en):not(.num):not(.step-no),
	#page40 p:not(.en):not(.num):not(.step-no),
	#page50 p {
		font-family: "Noto Sans JP", sans-serif;
		font-size: 15px;
		font-weight: 500;
		line-height: 30px;
		letter-spacing: 0.08em;
		color: #4a4a4a;
	}

	#page30 .en,
	#page40 .en,
	#page50 .en {
		font-size: 12px;
	}

	#page30 .sec-head h2 {
		font-size: 23px;
		letter-spacing: 0.1em;
		line-height: 1.6;
	}

	/* shared side padding = 46px (content ≈ 307px at 400px) */
	#page30 .features,
	#page30 .support,
	#page30 .daily,
	#page30 .partners,
	#page30 .faq {
		padding-right: 46px;
		padding-left: 46px;
	}

	/* ---------- MV : image first, bleeds right ---------- */
	#page30 .mv,
	#page40 .mv,
	#page50 .mv {
		padding: 0;
		margin-bottom: 45px;
	}

	#page30 .mv-img,
	#page40 .mv-img,
	#page50 .mv-img {
		order: -1;
		width: auto;
		height: 257px;
		margin: 0 0 30px 15px;
		border-radius: 15px 0 0 15px;
	}

	#page30 .mv-img img,
	#page40 .mv-img img,
	#page50 .mv-img img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	#page30 .mv-text,
	#page40 .mv-text,
	#page50 .mv-text {
		padding: 0 46px 0 47px;
	}

	#page30 .mv h1,
	#page40 .mv h1,
	#page50 .mv h1 {
		font-size: 22px;
		letter-spacing: 0.12em;
	}

	#page30 .mv h2,
	#page40 .mv h2,
	#page50 .mv h2 {
		font-size: 18px;
		letter-spacing: 0.1em;
		line-height: 1.7;
	}

	/* ---------- Features ---------- */
	#page30 .feature-list {
		gap: 30px;
		padding: 0;
	}

	#page30 .feature-list li {
		padding: 0;
		border-radius: 0;
		background: none;
		box-shadow: none;
		overflow: visible;
	}

	#page30 .feature-list li::after {
		content: none;
	}

	#page30 .feature-img-wrap {
		position: relative;
		height: 205px;
		border-radius: 10px 10px 0 0;
		overflow: hidden;
	}

	#page30 .feature-img-wrap img {
		width: 100%;
		height: 100%;
		border-radius: 0;
		clip-path: none;
		object-fit: cover;
	}

	#page30 .feature-curve {
		position: absolute;
		top: 171px;
		right: -92px;
		bottom: auto;
		left: -92px;
		height: 200px;
		border-radius: 50%;
		background: #fff;
	}

	#page30 .feature-icon {
		position: absolute;
		top: 196px;
		left: calc(50% - 24px);
		z-index: 1;
		width: 16px;
		height: 16px;
		margin: 0;
		border-radius: 50%;
		background: #F6DE0E;
		opacity: 0.6;
	}

	#page30 .feature-list .en {
		position: relative;
		z-index: 2;
		margin: -24px 0 0;
		font-size: 12px;
	}

	#page30 .feature-list .num {
		position: relative;
		z-index: 2;
		margin-top: 0;
		font-size: 22px;
		line-height: 1.2;
	}

	#page30 .feature-list h3 {
		margin: 10px 0 18px;
		font-size: 18px;
		letter-spacing: 0.12em;
		line-height: 1.65;
	}

	#page30 .feature-list li>p:last-child {
		padding: 0 3px;
		text-align: left;
	}

	/* ---------- Visit : bleeds right, 40px left radius ---------- */
	#page30 .visit {
		position: relative;
		width: 100%;
		margin: 0 0 45px;
		padding: 42px 46px 38px;
		border-radius: 40px 0 0 40px;
		/* XDの水彩画像（不透明度90%＝白10%を重ねる） */
		background:
			linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1)),
			url("../images/page30/visit-bg.webp") center / cover;
	}

	#page30 .visit::before {
		content: none;
	}

	#page30 .visit h2 {
		margin-bottom: 25px;
		font-size: 21px;
		letter-spacing: 0.1em;
		line-height: 1.6;
	}

	#page30 .visit-img {
		width: 250px;
		max-width: 100%;
		margin: 0 auto 20px;
		border-radius: 10px;
		overflow: hidden;
	}

	#page30 .visit h3 {
		margin-bottom: 18px;
		font-size: 18px;
		letter-spacing: 0.1em;
		line-height: 1.6;
	}

	#page30 .visit .btn-row {
		align-items: center;
		gap: 13px;
	}

	#page30 .visit .btn-row .pill {
		width: 247px;
		height: 50px;
		font-size: 15px;
		letter-spacing: 0.1em;
	}

	/* centred eyebrow + h2, left-aligned lead (per SMP comp) */
	#page30 .support .sec-head .en,
	#page30 .support .sec-head h2,
	#page30 .partners .sec-head .en,
	#page30 .partners .sec-head h2 {
		text-align: center;
	}

	/* ---------- Support ---------- */
	#page30 .support,
	#page40 .support {
		padding-right: 23px;
		padding-left: 23px;
	}

	#page30 .support .sec-head,
	#page30 .support .center-note {
		padding: 0 7px;
	}

	#page30 .support-list li,
	#page40 .support-list li {
		display: grid;
		grid-template-columns: 118px 1fr;
		column-gap: 22px;
		align-items: center;
		margin: 0;
		padding: 20px 0;
		border-bottom: 2px dashed #e1e1e1;
	}

	#page30 .support-list img {
		width: 118px;
		height: 105px;
		border-radius: 0;
		object-fit: contain;
	}

	#page30 .support-list h3,
	#page40 .support-list h3 {
		margin-bottom: 8px;
		font-size: 17px;
		letter-spacing: 0.12em;
		line-height: 1.65;
	}

	/* ---------- Daily : vertical timeline ---------- */
	#page30 .daily {
		padding-top: 45px;
		padding-left: 30px;
		padding-right: 30px;
	}

	#page30 .daily .day-list {
		position: relative;
		margin-top: 30px;
		padding-left: 65px;
	}

	#page30 .daily .day-list::before {
		content: "";
		position: absolute;
		top: 10px;
		bottom: 10px;
		left: 38px;
		width: 1px;
		height: auto;
		background: #9fd7e5;
	}

	#page30 .daily .day-list li {
		grid-template-columns: 60px 1fr;
		column-gap: 8px;
		margin-bottom: 30px;
		padding-bottom: 0;
	}

	#page30 .daily .day-list li::before {
		content: none;
	}

	#page30 .daily .day-list img {
		width: 60px;
		height: 60px;
		border-radius: 50%;
		background: #fff;
		object-fit: contain;
	}

	#page30 .daily .day-list h3 {
		color: #4a4a4a;
		font-size: 17px;
		letter-spacing: 0.1em;
	}

	#page30 .daily .day-list li>p:not(.en) {
		margin-top: 12px;
		padding-top: 0;
	}

	/* coloured dot on the vertical line, level with the icon */
	#page30 .daily .day-list li>p:not(.en)::after {
		display: block;
		top: -46px;
		left: -30px;
		width: 7px;
		height: 7px;
	}

	#page30 .daily .day-list li>p:not(.en)::before {
		display: none;
	}

	#page30 .daily .life-list {
		gap: 20px;
		margin-top: 20px;
		padding-left: 7px;
	}

	#page30 .daily .life-list li {
		display: grid;
		grid-template-columns: 108px 1fr;
		column-gap: 26px;
		align-items: center;
	}

	#page30 .daily .life-list img {
		width: 108px;
		height: 108px;
		border: 3px solid #fff;
	}

	#page30 .daily .life-list h3 {
		margin-bottom: 6px;
		font-size: 17px;
		letter-spacing: 0.12em;
	}

	#page30 .daily .life-list li p {
		font-size: 15px;
		line-height: 30px;
	}

	/* ---------- Partners ---------- */
	#page30 .partner-list,
	#page40 .partner-list {
		align-items: center;
		gap: 6px;
		padding: 0;
	}

	#page30 .partner-list li,
	#page40 .partner-list li {
		width: 271px;
		max-width: 100%;
		padding: 15px 30px 20px;
		border-radius: 12px;
	}

	#page30 .partner-list img,
	#page40 .partner-list img {
		width: 98px;
		height: 90px;
	}

	#page30 .partner-list h3,
	#page40 .partner-list h3 {
		margin-bottom: 8px;
		font-size: 17px;
		letter-spacing: 0.12em;
	}

	#page30 .partner-list li>p,
	#page40 .partner-list li>p {
		text-align: left;
	}

	/* ---------- Flow : white card 374px ---------- */
	#page30 .flow {
		position: relative;
		width: calc(100% - 26px);
		margin: 0 auto 45px;
		padding: 40px 17px 30px;
		border-radius: 24px;
		background: #fff;
		box-shadow: 0 0 20px rgba(0, 98, 121, 0.1);
		overflow: hidden;
	}

	#page30 .flow .sec-head h2 {
		text-align: center;
	}

	#page30 .flow .sec-head .en {
		text-align: center;
	}

	#page30 .steps,
	#page40 .steps {
		border-top: 1px solid #d9e3e6;
	}

	#page30 .steps li,
	#page40 .steps li {
		display: grid;
		grid-template-columns: 63px 1fr;
		gap: 0;
		padding: 0;
		border-top: 0;
		border-bottom: 1px solid #d9e3e6;
	}

	#page30 .steps li:last-child,
	#page40 .steps li:last-child {
		border-bottom: 1px solid #d9e3e6;
	}

	#page30 .step-no,
	#page40 .step-no {
		position: relative;
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: baseline;
		gap: 3px;
		width: auto;
		padding-top: 18px;
		background: #ecf6f9;
	}

	#page30 .steps li:nth-child(2) .step-no,
	#page40 .steps li:nth-child(2) .step-no {
		background: #bee6ec;
	}

	#page30 .steps li:nth-child(3) .step-no,
	#page40 .steps li:nth-child(3) .step-no {
		background: #aadfe6;
	}

	#page30 .steps li:nth-child(4) .step-no,
	#page40 .steps li:nth-child(4) .step-no {
		background: #96d9e1;
	}

	#page30 .steps li:not(:last-child) .step-no::after,
	#page40 .steps li:not(:last-child) .step-no::after {
		content: "";
		position: absolute;
		top: calc(100% + 1px);
		left: 0;
		z-index: 2;
		border-style: solid;
		border-width: 8px 31.5px 0;
		border-color: #ecf6f9 transparent transparent;
	}

	#page30 .steps li:nth-child(2) .step-no::after,
	#page40 .steps li:nth-child(2) .step-no::after {
		border-top-color: #bee6ec;
	}

	#page30 .steps li:nth-child(3) .step-no::after,
	#page40 .steps li:nth-child(3) .step-no::after {
		border-top-color: #aadfe6;
	}

	#page30 .step-word {
		font-size: 7px;
		text-transform: uppercase;
	}

	#page30 .step-num {
		font-size: 12px;
		font-weight: 500;
	}

	#page30 .steps li>div {
		padding: 14px 0 14px 10px;
	}

	#page30 .steps h3 {
		margin-bottom: 4px;
		font-size: 17px;
		letter-spacing: 0.12em;
	}

	/* ---------- FAQ ---------- */
	#page30 .faq,
	#page40 .faq,
	#page50 .faq {
		padding-right: 13px;
		padding-left: 20px;
	}

	#page30 .faq .sec-head,
	#page40 .faq .sec-head,
	#page50 .faq .sec-head {
		padding: 0 23px 0 38px;
	}

	#page30 .faq .sec-head h2,
	#page40 .faq .sec-head h2,
	#page50 .faq .sec-head h2,
	#page30 .faq .sec-head .en,
	#page40 .faq .sec-head .en,
	#page50 .faq .sec-head .en {
		text-align: center;
	}

	#page30 .faq-list details,
	#page40 .faq-list details,
	#page50 .faq-list details {
		padding: 16px 0;
	}

	#page30 .faq-list summary {
		gap: 0;
		font-size: 17px;
		letter-spacing: 0.1em;
		line-height: 1.6;
	}

	#page30 .faq-list summary .q,
	#page40 .faq-list summary .q,
	#page50 .faq-list summary .q {
		width: 33px;
		font-size: 19px;
	}

	#page30 .faq-list details p,
	#page40 .faq-list details p,
	#page50 .faq-list details p {
		padding: 10px 20px 0 33px;
	}
}

/* ==========================================================================
   30 — fixes v3 (paste at the very END of page01.css, after the v2 block)
   ========================================================================== */

/* keep decorative blobs from causing sideways scroll */
#page30,
#page40,
#page50 {
	overflow-x: clip;
}

/* --------------------------------------------------------------------------
   Watercolour blobs (#1) — soft yellow / blue circles behind content
   -------------------------------------------------------------------------- */
#page30 .mv,
#page30 .features,
#page30 .support,
#page40 .mv,
#page40 .audience,
#page40 .support,
#page40 .partners,
#page40 .faq,
#page50 .mv,
#page50 .estimate {
	position: relative;
	isolation: isolate;
}

#page30 .mv::before,
#page30 .mv::after,
#page40 .mv::before,
#page40 .mv::after,
#page40 .audience::before,
#page40 .support::after,
#page40 .partners::before,
#page40 .partners::after,
#page40 .faq::before,
#page40 .faq::after,
#page30 .features::before,
#page30 .features::after,
#page30 .support::before,
#page30 .support::after,
#page30 .support-list::before,
#page30 .support-list::after,
#page50 .mv::before,
#page50 .mv::after,
#page50 .estimate::before,
#page50 .estimate::after,
#page50 .estimate .sec-head::before {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	filter: blur(6px);
	pointer-events: none;
}

/* yellow = rgba(248,226,110) / blue = rgba(160,205,235) */
#page30 .mv::before,
#page30 .features::before,
#page30 .support::before,
#page30 .support-list::before,
#page40 .mv::before,
#page40 .audience::before,
#page40 .partners::before,
#page40 .faq::before,
#page50 .mv::before,
#page50 .estimate::before,
#page50 .estimate .sec-head::before {
	background: radial-gradient(circle, rgba(248, 226, 110, 0.5) 0%, rgba(248, 226, 110, 0.3) 45%, rgba(248, 226, 110, 0) 70%);
}

#page30 .mv::after,
#page30 .features::after,
#page30 .support::after,
#page30 .support-list::after,
#page40 .mv::after,
#page40 .support::after,
#page40 .partners::after,
#page40 .faq::after,
#page50 .mv::after,
#page50 .estimate::after {
	background: radial-gradient(circle, rgba(160, 205, 235, 0.4) 0%, rgba(160, 205, 235, 0.22) 45%, rgba(160, 205, 235, 0) 70%);
}

@media only screen and (min-width: 1025px) {

	/* MV: yellow left of the heading, blue up by the logo */
	#page30 .mv::before,
	#page40 .mv::before,
	#page50 .mv::before {
		top: 60px;
		left: calc(50% - 870px);
		width: 260px;
		height: 260px;
	}

	#page30 .mv::after,
	#page40 .mv::after,
	#page50 .mv::after {
		top: -130px;
		left: calc(50% - 640px);
		width: 280px;
		height: 240px;
	}

	/* Features: yellow + blue at top-right of the heading */
	#page30 .features::before {
		top: -60px;
		right: calc(50% - 760px);
		width: 200px;
		height: 200px;
	}

	#page30 .features::after {
		top: 150px;
		right: calc(50% - 560px);
		width: 180px;
		height: 150px;
	}

	/* Support（カンプ位置）: 見出しの左に黄・青、最後の行の右に黄、注記の右下に青（次のセクションにかかる） */
	#page30 .support::before {
		top: 1px;
		left: calc(50% - 651px);
		width: 164px;
		height: 162px;
	}

	#page30 .support::after {
		top: -44px;
		left: calc(50% - 792px);
		width: 117px;
		height: 117px;
	}

	#page30 .support-list::before {
		top: 931px;
		left: calc(50% + 579px);
		width: 171px;
		height: 169px;
	}

	#page30 .support-list::after {
		top: 1160px;
		left: calc(50% + 419px);
		width: 254px;
		height: 253px;
	}

	/* 40: yellow at the right of the circles, blue beside the support heading */
	#page40 .audience::before {
		top: 363px;
		left: calc(50% + 600px);
		width: 220px;
		height: 220px;
	}

	#page40 .support::after {
		top: 70px;
		left: calc(50% + 470px);
		width: 160px;
		height: 150px;
	}

	/* 40: yellow + blue at the right of the network heading, pair at the left of the FAQ */
	#page40 .partners::before {
		top: 6px;
		left: calc(50% + 610px);
		width: 170px;
		height: 170px;
	}

	#page40 .partners::after {
		top: 166px;
		left: calc(50% + 420px);
		width: 230px;
		height: 170px;
	}

	#page40 .faq::before {
		top: -130px;
		left: calc(50% - 643px);
		width: 165px;
		height: 165px;
	}

	#page40 .faq::after {
		top: -190px;
		left: calc(50% - 790px);
		width: 110px;
		height: 110px;
	}

	/* 50: yellow at the left of the estimate board, yellow + blue at the right of the note */
	#page50 .estimate .sec-head::before {
		top: 143px;
		left: calc(50% - 760px);
		width: 175px;
		height: 175px;
	}

	#page50 .estimate::before {
		top: 658px;
		left: calc(50% + 580px);
		width: 185px;
		height: 185px;
	}

	#page50 .estimate::after {
		top: 803px;
		left: calc(50% + 440px);
		width: 150px;
		height: 160px;
	}
}

@media only screen and (max-width: 1024px) {
	#page30 .mv::before,
	#page40 .mv::before,
	#page50 .mv::before {
		top: 400px;
		left: -60px;
		width: 150px;
		height: 150px;
	}

	#page30 .mv::after,
	#page40 .mv::after,
	#page50 .mv::after {
		top: 460px;
		right: -40px;
		width: 110px;
		height: 110px;
	}

	#page30 .features::before {
		top: -20px;
		right: -20px;
		width: 110px;
		height: 110px;
	}

	#page30 .features::after {
		content: none;
	}

	/* Support（カンプ位置）: 見出しの左上に黄・青、注記の右に黄・青（右の2つは下端基準） */
	#page30 .support::before {
		top: -12px;
		left: 18px;
		width: 82px;
		height: 81px;
	}

	#page30 .support::after {
		top: -71px;
		left: -29px;
		width: 58.5px;
		height: 58.5px;
	}

	#page30 .support-list::before {
		right: -42px;
		bottom: 87px;
		width: 85.5px;
		height: 84.5px;
	}

	#page30 .support-list::after {
		right: -4px;
		bottom: -68px;
		width: 127px;
		height: 126.5px;
	}

	#page40 .audience::before {
		top: 390px;
		right: -50px;
		width: 110px;
		height: 110px;
	}

	#page40 .support::after {
		top: -5px;
		right: 25px;
		width: 75px;
		height: 85px;
	}

	#page40 .partners::before {
		top: 137px;
		right: -40px;
		width: 80px;
		height: 80px;
	}

	#page40 .partners::after {
		top: 217px;
		right: 15px;
		width: 85px;
		height: 115px;
	}

	#page40 .faq::before {
		top: -33px;
		left: 45px;
		width: 80px;
		height: 80px;
	}

	#page40 .faq::after {
		top: -50px;
		left: -25px;
		width: 55px;
		height: 55px;
	}

	#page50 .estimate .sec-head::before {
		top: 120px;
		left: -40px;
		width: 85px;
		height: 85px;
	}

	#page50 .estimate::before {
		top: 1413px;
		right: -57px;
		width: 105px;
		height: 105px;
	}

	#page50 .estimate::after {
		top: 1503px;
		right: 43px;
		width: 75px;
		height: 75px;
	}
}

/* --------------------------------------------------------------------------
   #2 Features lead — one long first line (needs the PHP <br> move too)
   #3 / #5 Notes centred — must beat "#page30 p:not(.en):not(.num):not(.step-no)"
   -------------------------------------------------------------------------- */
@media only screen and (min-width: 1025px) {
	#page30 .features .sec-head p:not(.en),
	#page40 .sec-head p:not(.en) {
		width: auto;
		max-width: none;
	}

	#page30 .support p.center-note:not(.en),
	#page30 .partners p.center-note:not(.en),
	#page30 .partners .sec-head p:not(.en) {
		width: auto;
		max-width: none;
		margin-right: auto;
		margin-left: auto;
		text-align: center;
	}
}

/* --------------------------------------------------------------------------
   #4 / #5 Blue watercolour background: Daily → Partners → Flow
   XDの水彩画像（images/page30/bg-watercolor.webp）を白地に重ねる。
   不透明度は --wash（白の重ね）で調整：30/40は40%、50はPC30%・SMP50%（カンプ値）
   -------------------------------------------------------------------------- */
#page30 .daily-bg-wrap,
#page40 .family-bg,
#page50 .price-bg {
	position: relative;
	isolation: isolate;
	background: none;
}

#page30 .daily-bg-wrap::before,
#page40 .family-bg::before,
#page50 .price-bg::before {
	content: "";
	display: block;
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 1;
	pointer-events: none;
	--wash: rgba(255, 255, 255, 0.6);
	background:
		linear-gradient(var(--wash), var(--wash)),
		url("../images/page30/bg-watercolor.webp") center / cover;
}

@media only screen and (min-width: 1025px) {

	/* big arc: gentle rise on the left, long sweep down to the right edge */
	#page30 .daily-bg-wrap::before {
		border-top-left-radius: 320px 30px;
		border-top-right-radius: calc(100% - 330px) 820px;
	}

	#page40 .family-bg::before {
		border-top-left-radius: 400px 50px;
		border-top-right-radius: calc(100% - 400px) 300px;
	}

	/* 50: top edge + white hill under the tables, traced from the XD comp (1500px) every 20px */
	#page50 .price-bg::before {
		--wash: rgba(255, 255, 255, 0.7);
		bottom: -75px;
		-webkit-mask-image:
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1500 440' preserveAspectRatio='none'%3E%3Cpath d='M0 440L0 40.0C3.3 39.5 13.3 38.2 20 37.0C26.7 35.8 33.3 34.3 40 33.0C46.7 31.7 53.3 30.2 60 29.0C66.7 27.8 73.3 27.0 80 26.0C86.7 25.0 93.3 24.0 100 23.0C106.7 22.0 113.3 21.0 120 20.0C126.7 19.0 133.3 17.8 140 17.0C146.7 16.2 153.3 15.8 160 15.0C166.7 14.2 173.3 12.8 180 12.0C186.7 11.2 193.3 10.7 200 10.0C206.7 9.3 213.3 8.5 220 8.0C226.7 7.5 233.3 7.3 240 7.0C246.7 6.7 253.3 6.5 260 6.0C266.7 5.5 273.3 4.5 280 4.0C286.7 3.5 293.3 3.3 300 3.0C306.7 2.7 313.3 2.3 320 2.0C326.7 1.7 333.3 1.2 340 1.0C346.7 0.8 353.3 1.2 360 1.0C366.7 0.8 373.3 0.2 380 0.0C386.7 -0.2 393.3 -0.2 400 0.0C406.7 0.2 413.3 0.7 420 1.0C426.7 1.3 433.3 1.7 440 2.0C446.7 2.3 453.3 2.7 460 3.0C466.7 3.3 473.3 3.7 480 4.0C486.7 4.3 493.3 4.5 500 5.0C506.7 5.5 513.3 6.5 520 7.0C526.7 7.5 533.3 7.5 540 8.0C546.7 8.5 553.3 9.5 560 10.0C566.7 10.5 573.3 10.5 580 11.0C586.7 11.5 593.3 12.3 600 13.0C606.7 13.7 613.3 14.2 620 15.0C626.7 15.8 633.3 17.2 640 18.0C646.7 18.8 653.3 19.2 660 20.0C666.7 20.8 673.3 22.0 680 23.0C686.7 24.0 693.3 25.0 700 26.0C706.7 27.0 713.3 27.8 720 29.0C726.7 30.2 733.3 31.7 740 33.0C746.7 34.3 753.3 35.5 760 37.0C766.7 38.5 773.3 40.5 780 42.0C786.7 43.5 793.3 44.5 800 46.0C806.7 47.5 813.3 49.2 820 51.0C826.7 52.8 833.3 55.2 840 57.0C846.7 58.8 853.3 60.2 860 62.0C866.7 63.8 873.3 66.0 880 68.0C886.7 70.0 893.3 72.0 900 74.0C906.7 76.0 913.3 77.8 920 80.0C926.7 82.2 933.3 84.8 940 87.0C946.7 89.2 953.3 90.8 960 93.0C966.7 95.2 973.3 97.5 980 100.0C986.7 102.5 993.3 105.3 1000 108.0C1006.7 110.7 1013.3 113.3 1020 116.0C1026.7 118.7 1033.3 121.3 1040 124.0C1046.7 126.7 1053.3 129.2 1060 132.0C1066.7 134.8 1073.3 138.0 1080 141.0C1086.7 144.0 1093.3 147.1 1100 150.3C1106.7 153.4 1113.3 156.7 1120 160.0C1126.7 163.4 1133.3 166.8 1140 170.3C1146.7 173.8 1153.3 177.4 1160 181.1C1166.7 184.7 1173.3 188.5 1180 192.3C1186.7 196.1 1193.3 200.0 1200 204.0C1206.7 208.0 1213.3 212.0 1220 216.1C1226.7 220.2 1233.3 224.4 1240 228.7C1246.7 232.9 1253.3 237.3 1260 241.7C1266.7 246.1 1273.3 250.5 1280 255.1C1286.7 259.6 1293.3 264.2 1300 268.8C1306.7 273.5 1313.3 278.2 1320 283.0C1326.7 287.8 1333.3 292.6 1340 297.5C1346.7 302.4 1353.3 307.4 1360 312.4C1366.7 317.4 1373.3 322.5 1380 327.6C1386.7 332.7 1393.3 337.9 1400 343.2C1406.7 348.4 1413.3 353.7 1420 359.0C1426.7 364.3 1433.3 369.5 1440 375.0C1446.7 380.5 1453.3 386.3 1460 392.0C1466.7 397.7 1473.3 403.8 1480 409.0C1486.7 414.2 1496.7 420.7 1500 423.0L1500 440Z'/%3E%3C/svg%3E"),
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1500 420' preserveAspectRatio='none'%3E%3Cpath d='M1500 0L0 0L0 420.0C3.3 416.2 13.3 404.2 20 397.0C26.7 389.8 33.3 383.5 40 377.0C46.7 370.5 53.3 364.3 60 358.0C66.7 351.7 73.3 345.0 80 339.0C86.7 333.0 93.3 327.7 100 322.0C106.7 316.3 113.3 310.4 120 304.7C126.7 299.1 133.3 293.6 140 288.2C146.7 282.8 153.3 277.5 160 272.3C166.7 267.2 173.3 262.1 180 257.2C186.7 252.3 193.3 247.4 200 242.7C206.7 238.0 213.3 233.4 220 228.9C226.7 224.4 233.3 220.0 240 215.7C246.7 211.4 253.3 207.2 260 203.1C266.7 199.0 273.3 195.0 280 191.1C286.7 187.3 293.3 183.5 300 179.7C306.7 176.0 313.3 172.4 320 168.9C326.7 165.4 333.3 161.9 340 158.6C346.7 155.2 353.3 152.0 360 148.8C366.7 145.6 373.3 142.5 380 139.5C386.7 136.5 393.3 133.6 400 130.7C406.7 127.9 413.3 125.1 420 122.4C426.7 119.7 433.3 117.1 440 114.5C446.7 112.0 453.3 109.5 460 107.1C466.7 104.7 473.3 102.4 480 100.1C486.7 97.9 493.3 95.7 500 93.5C506.7 91.4 513.3 89.3 520 87.3C526.7 85.3 533.3 83.4 540 81.5C546.7 79.6 553.3 77.8 560 76.0C566.7 74.3 573.3 72.6 580 70.9C586.7 69.3 593.3 67.7 600 66.1C606.7 64.6 613.3 63.1 620 61.7C626.7 60.2 633.3 58.9 640 57.5C646.7 56.2 653.3 54.9 660 53.7C666.7 52.4 673.3 51.2 680 50.1C686.7 48.9 693.3 47.8 700 46.7C706.7 45.7 713.3 44.7 720 43.7C726.7 42.7 733.3 41.7 740 40.8C746.7 39.9 753.3 39.1 760 38.2C766.7 37.4 773.3 36.6 780 35.8C786.7 35.1 793.3 34.4 800 33.7C806.7 33.0 813.3 32.3 820 31.7C826.7 31.0 833.3 30.4 840 29.9C846.7 29.3 853.3 28.7 860 28.2C866.7 27.7 873.3 27.2 880 26.7C886.7 26.3 893.3 25.8 900 25.4C906.7 25.0 913.3 24.6 920 24.2C926.7 23.8 933.3 23.5 940 23.1C946.7 22.8 953.3 22.5 960 22.2C966.7 21.9 973.3 21.6 980 21.4C986.7 21.1 993.3 20.9 1000 20.6C1006.7 20.4 1013.3 20.2 1020 20.0C1026.7 19.8 1033.3 19.6 1040 19.4C1046.7 19.3 1053.3 19.1 1060 19.0C1066.7 18.8 1073.3 18.7 1080 18.6C1086.7 18.4 1093.3 18.3 1100 18.2C1106.7 18.1 1113.3 18.0 1120 17.9C1126.7 17.9 1133.3 17.8 1140 17.7C1146.7 17.6 1153.3 17.6 1160 17.5C1166.7 17.5 1173.3 17.4 1180 17.4C1186.7 17.3 1193.3 17.3 1200 17.3C1206.7 17.2 1213.3 17.2 1220 17.2C1226.7 17.2 1233.3 17.1 1240 17.1C1246.7 17.1 1253.3 17.1 1260 17.1C1266.7 17.1 1273.3 17.0 1280 17.0C1286.7 17.0 1293.3 17.0 1300 17.0C1306.7 17.0 1313.3 17.0 1320 17.0C1326.7 17.0 1333.3 17.0 1340 17.0C1346.7 17.0 1353.3 17.0 1360 17.0C1366.7 17.0 1373.3 17.0 1380 17.0C1386.7 17.0 1393.3 16.5 1400 17.0C1406.7 17.5 1413.3 19.2 1420 20.0C1426.7 20.8 1433.3 21.3 1440 22.0C1446.7 22.7 1453.3 23.2 1460 24.0C1466.7 24.8 1473.3 26.0 1480 27.0C1486.7 28.0 1496.7 29.5 1500 30.0L1500 0Z'/%3E%3C/svg%3E"),
			linear-gradient(#000, #000);
		mask-image:
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1500 440' preserveAspectRatio='none'%3E%3Cpath d='M0 440L0 40.0C3.3 39.5 13.3 38.2 20 37.0C26.7 35.8 33.3 34.3 40 33.0C46.7 31.7 53.3 30.2 60 29.0C66.7 27.8 73.3 27.0 80 26.0C86.7 25.0 93.3 24.0 100 23.0C106.7 22.0 113.3 21.0 120 20.0C126.7 19.0 133.3 17.8 140 17.0C146.7 16.2 153.3 15.8 160 15.0C166.7 14.2 173.3 12.8 180 12.0C186.7 11.2 193.3 10.7 200 10.0C206.7 9.3 213.3 8.5 220 8.0C226.7 7.5 233.3 7.3 240 7.0C246.7 6.7 253.3 6.5 260 6.0C266.7 5.5 273.3 4.5 280 4.0C286.7 3.5 293.3 3.3 300 3.0C306.7 2.7 313.3 2.3 320 2.0C326.7 1.7 333.3 1.2 340 1.0C346.7 0.8 353.3 1.2 360 1.0C366.7 0.8 373.3 0.2 380 0.0C386.7 -0.2 393.3 -0.2 400 0.0C406.7 0.2 413.3 0.7 420 1.0C426.7 1.3 433.3 1.7 440 2.0C446.7 2.3 453.3 2.7 460 3.0C466.7 3.3 473.3 3.7 480 4.0C486.7 4.3 493.3 4.5 500 5.0C506.7 5.5 513.3 6.5 520 7.0C526.7 7.5 533.3 7.5 540 8.0C546.7 8.5 553.3 9.5 560 10.0C566.7 10.5 573.3 10.5 580 11.0C586.7 11.5 593.3 12.3 600 13.0C606.7 13.7 613.3 14.2 620 15.0C626.7 15.8 633.3 17.2 640 18.0C646.7 18.8 653.3 19.2 660 20.0C666.7 20.8 673.3 22.0 680 23.0C686.7 24.0 693.3 25.0 700 26.0C706.7 27.0 713.3 27.8 720 29.0C726.7 30.2 733.3 31.7 740 33.0C746.7 34.3 753.3 35.5 760 37.0C766.7 38.5 773.3 40.5 780 42.0C786.7 43.5 793.3 44.5 800 46.0C806.7 47.5 813.3 49.2 820 51.0C826.7 52.8 833.3 55.2 840 57.0C846.7 58.8 853.3 60.2 860 62.0C866.7 63.8 873.3 66.0 880 68.0C886.7 70.0 893.3 72.0 900 74.0C906.7 76.0 913.3 77.8 920 80.0C926.7 82.2 933.3 84.8 940 87.0C946.7 89.2 953.3 90.8 960 93.0C966.7 95.2 973.3 97.5 980 100.0C986.7 102.5 993.3 105.3 1000 108.0C1006.7 110.7 1013.3 113.3 1020 116.0C1026.7 118.7 1033.3 121.3 1040 124.0C1046.7 126.7 1053.3 129.2 1060 132.0C1066.7 134.8 1073.3 138.0 1080 141.0C1086.7 144.0 1093.3 147.1 1100 150.3C1106.7 153.4 1113.3 156.7 1120 160.0C1126.7 163.4 1133.3 166.8 1140 170.3C1146.7 173.8 1153.3 177.4 1160 181.1C1166.7 184.7 1173.3 188.5 1180 192.3C1186.7 196.1 1193.3 200.0 1200 204.0C1206.7 208.0 1213.3 212.0 1220 216.1C1226.7 220.2 1233.3 224.4 1240 228.7C1246.7 232.9 1253.3 237.3 1260 241.7C1266.7 246.1 1273.3 250.5 1280 255.1C1286.7 259.6 1293.3 264.2 1300 268.8C1306.7 273.5 1313.3 278.2 1320 283.0C1326.7 287.8 1333.3 292.6 1340 297.5C1346.7 302.4 1353.3 307.4 1360 312.4C1366.7 317.4 1373.3 322.5 1380 327.6C1386.7 332.7 1393.3 337.9 1400 343.2C1406.7 348.4 1413.3 353.7 1420 359.0C1426.7 364.3 1433.3 369.5 1440 375.0C1446.7 380.5 1453.3 386.3 1460 392.0C1466.7 397.7 1473.3 403.8 1480 409.0C1486.7 414.2 1496.7 420.7 1500 423.0L1500 440Z'/%3E%3C/svg%3E"),
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1500 420' preserveAspectRatio='none'%3E%3Cpath d='M1500 0L0 0L0 420.0C3.3 416.2 13.3 404.2 20 397.0C26.7 389.8 33.3 383.5 40 377.0C46.7 370.5 53.3 364.3 60 358.0C66.7 351.7 73.3 345.0 80 339.0C86.7 333.0 93.3 327.7 100 322.0C106.7 316.3 113.3 310.4 120 304.7C126.7 299.1 133.3 293.6 140 288.2C146.7 282.8 153.3 277.5 160 272.3C166.7 267.2 173.3 262.1 180 257.2C186.7 252.3 193.3 247.4 200 242.7C206.7 238.0 213.3 233.4 220 228.9C226.7 224.4 233.3 220.0 240 215.7C246.7 211.4 253.3 207.2 260 203.1C266.7 199.0 273.3 195.0 280 191.1C286.7 187.3 293.3 183.5 300 179.7C306.7 176.0 313.3 172.4 320 168.9C326.7 165.4 333.3 161.9 340 158.6C346.7 155.2 353.3 152.0 360 148.8C366.7 145.6 373.3 142.5 380 139.5C386.7 136.5 393.3 133.6 400 130.7C406.7 127.9 413.3 125.1 420 122.4C426.7 119.7 433.3 117.1 440 114.5C446.7 112.0 453.3 109.5 460 107.1C466.7 104.7 473.3 102.4 480 100.1C486.7 97.9 493.3 95.7 500 93.5C506.7 91.4 513.3 89.3 520 87.3C526.7 85.3 533.3 83.4 540 81.5C546.7 79.6 553.3 77.8 560 76.0C566.7 74.3 573.3 72.6 580 70.9C586.7 69.3 593.3 67.7 600 66.1C606.7 64.6 613.3 63.1 620 61.7C626.7 60.2 633.3 58.9 640 57.5C646.7 56.2 653.3 54.9 660 53.7C666.7 52.4 673.3 51.2 680 50.1C686.7 48.9 693.3 47.8 700 46.7C706.7 45.7 713.3 44.7 720 43.7C726.7 42.7 733.3 41.7 740 40.8C746.7 39.9 753.3 39.1 760 38.2C766.7 37.4 773.3 36.6 780 35.8C786.7 35.1 793.3 34.4 800 33.7C806.7 33.0 813.3 32.3 820 31.7C826.7 31.0 833.3 30.4 840 29.9C846.7 29.3 853.3 28.7 860 28.2C866.7 27.7 873.3 27.2 880 26.7C886.7 26.3 893.3 25.8 900 25.4C906.7 25.0 913.3 24.6 920 24.2C926.7 23.8 933.3 23.5 940 23.1C946.7 22.8 953.3 22.5 960 22.2C966.7 21.9 973.3 21.6 980 21.4C986.7 21.1 993.3 20.9 1000 20.6C1006.7 20.4 1013.3 20.2 1020 20.0C1026.7 19.8 1033.3 19.6 1040 19.4C1046.7 19.3 1053.3 19.1 1060 19.0C1066.7 18.8 1073.3 18.7 1080 18.6C1086.7 18.4 1093.3 18.3 1100 18.2C1106.7 18.1 1113.3 18.0 1120 17.9C1126.7 17.9 1133.3 17.8 1140 17.7C1146.7 17.6 1153.3 17.6 1160 17.5C1166.7 17.5 1173.3 17.4 1180 17.4C1186.7 17.3 1193.3 17.3 1200 17.3C1206.7 17.2 1213.3 17.2 1220 17.2C1226.7 17.2 1233.3 17.1 1240 17.1C1246.7 17.1 1253.3 17.1 1260 17.1C1266.7 17.1 1273.3 17.0 1280 17.0C1286.7 17.0 1293.3 17.0 1300 17.0C1306.7 17.0 1313.3 17.0 1320 17.0C1326.7 17.0 1333.3 17.0 1340 17.0C1346.7 17.0 1353.3 17.0 1360 17.0C1366.7 17.0 1373.3 17.0 1380 17.0C1386.7 17.0 1393.3 16.5 1400 17.0C1406.7 17.5 1413.3 19.2 1420 20.0C1426.7 20.8 1433.3 21.3 1440 22.0C1446.7 22.7 1453.3 23.2 1460 24.0C1466.7 24.8 1473.3 26.0 1480 27.0C1486.7 28.0 1496.7 29.5 1500 30.0L1500 0Z'/%3E%3C/svg%3E"),
			linear-gradient(#000, #000);
		-webkit-mask-position: top, bottom, 0 440px;
		mask-position: top, bottom, 0 440px;
		-webkit-mask-size: 100% 440px, 100% 420px, 100% calc(100% - 860px);
		mask-size: 100% 440px, 100% 420px, 100% calc(100% - 860px);
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
	}
}

@media only screen and (max-width: 1024px) {
	#page30 .daily-bg-wrap,
	#page40 .family-bg {
		padding-bottom: 45px;
	}

	/* 上辺の弧（SMPカンプ）：左端が高く、幅の約26%で頂点、右端へ大きく下がる */
	#page30 .daily-bg-wrap::before {
		border-top-left-radius: 26.5% 15.5px;
		border-top-right-radius: 73.5% 160px;
	}

	#page40 .family-bg::before {
		border-top-left-radius: 26.4% 12.5px;
		border-top-right-radius: 73.6% 128.5px;
	}

	/* 50: same two edges traced from the SMP comp (800px → ÷2) */
	#page50 .price-bg::before {
		--wash: rgba(255, 255, 255, 0.5);
		bottom: -64px;
		-webkit-mask-image:
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 340' preserveAspectRatio='none'%3E%3Cpath d='M0 340L0 30.0C3.3 29.0 13.3 25.7 20 24.0C26.7 22.3 33.3 21.5 40 20.0C46.7 18.5 53.3 16.5 60 15.0C66.7 13.5 73.3 12.2 80 11.0C86.7 9.8 93.3 9.0 100 8.0C106.7 7.0 113.3 5.8 120 5.0C126.7 4.2 133.3 3.5 140 3.0C146.7 2.5 153.3 2.3 160 2.0C166.7 1.7 173.3 1.3 180 1.0C186.7 0.7 193.3 0.2 200 0.0C206.7 -0.2 213.3 -0.2 220 0.0C226.7 0.2 233.3 0.5 240 1.0C246.7 1.5 253.3 2.3 260 3.0C266.7 3.7 273.3 4.3 280 5.0C286.7 5.7 293.3 6.2 300 7.0C306.7 7.8 313.3 9.0 320 10.0C326.7 11.0 333.3 12.0 340 13.0C346.7 14.0 353.3 14.7 360 16.0C366.7 17.3 373.3 19.3 380 21.0C386.7 22.7 393.3 24.0 400 26.0C406.7 28.0 413.3 30.7 420 33.0C426.7 35.3 433.3 37.7 440 40.0C446.7 42.3 453.3 44.3 460 47.0C466.7 49.7 473.3 53.2 480 56.0C486.7 58.8 493.3 61.0 500 64.0C506.7 67.0 513.3 70.5 520 74.0C526.7 77.5 533.3 81.2 540 85.0C546.7 88.8 553.3 92.5 560 96.6C566.7 100.7 573.3 104.9 580 109.4C586.7 113.9 593.3 118.5 600 123.4C606.7 128.2 613.3 133.3 620 138.5C626.7 143.7 633.3 149.2 640 154.8C646.7 160.3 653.3 166.1 660 172.1C666.7 178.1 673.3 184.2 680 190.5C686.7 196.8 693.3 203.3 700 210.0C706.7 216.7 713.3 223.5 720 230.5C726.7 237.5 733.3 244.7 740 252.0C746.7 259.3 753.3 266.3 760 274.0C766.7 281.7 773.3 290.7 780 298.0C786.7 305.3 796.7 314.7 800 318.0L800 340Z'/%3E%3C/svg%3E"),
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 330' preserveAspectRatio='none'%3E%3Cpath d='M800 0L0 0L0 330.0C3.3 324.7 13.3 308.0 20 298.0C26.7 288.0 33.3 278.8 40 270.0C46.7 261.2 53.3 253.0 60 245.0C66.7 237.0 73.3 229.5 80 222.0C86.7 214.5 93.3 206.9 100 199.9C106.7 192.9 113.3 186.2 120 179.8C126.7 173.4 133.3 167.3 140 161.5C146.7 155.7 153.3 150.1 160 144.8C166.7 139.5 173.3 134.4 180 129.6C186.7 124.8 193.3 120.2 200 115.9C206.7 111.5 213.3 107.4 220 103.5C226.7 99.6 233.3 95.9 240 92.4C246.7 88.9 253.3 85.6 260 82.4C266.7 79.3 273.3 76.3 280 73.5C286.7 70.8 293.3 68.2 300 65.7C306.7 63.2 313.3 60.9 320 58.7C326.7 56.6 333.3 54.6 340 52.7C346.7 50.8 353.3 49.0 360 47.4C366.7 45.7 373.3 44.2 380 42.8C386.7 41.4 393.3 40.1 400 38.8C406.7 37.6 413.3 36.5 420 35.5C426.7 34.4 433.3 33.5 440 32.6C446.7 31.8 453.3 31.0 460 30.3C466.7 29.6 473.3 28.9 480 28.3C486.7 27.7 493.3 27.2 500 26.7C506.7 26.3 513.3 25.9 520 25.5C526.7 25.1 533.3 24.8 540 24.5C546.7 24.2 553.3 23.9 560 23.7C566.7 23.5 573.3 23.3 580 23.1C586.7 23.0 593.3 22.8 600 22.7C606.7 22.6 613.3 22.5 620 22.4C626.7 22.3 633.3 22.3 640 22.2C646.7 22.2 653.3 22.1 660 22.1C666.7 22.1 673.3 22.1 680 22.0C686.7 22.0 693.3 22.0 700 22.0C706.7 22.0 713.3 22.0 720 22.0C726.7 22.0 733.3 22.0 740 22.0C746.7 22.0 753.3 21.8 760 22.0C766.7 22.2 773.3 23.0 780 23.5C786.7 24.0 796.7 24.8 800 25.0L800 0Z'/%3E%3C/svg%3E"),
			linear-gradient(#000, #000);
		mask-image:
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 340' preserveAspectRatio='none'%3E%3Cpath d='M0 340L0 30.0C3.3 29.0 13.3 25.7 20 24.0C26.7 22.3 33.3 21.5 40 20.0C46.7 18.5 53.3 16.5 60 15.0C66.7 13.5 73.3 12.2 80 11.0C86.7 9.8 93.3 9.0 100 8.0C106.7 7.0 113.3 5.8 120 5.0C126.7 4.2 133.3 3.5 140 3.0C146.7 2.5 153.3 2.3 160 2.0C166.7 1.7 173.3 1.3 180 1.0C186.7 0.7 193.3 0.2 200 0.0C206.7 -0.2 213.3 -0.2 220 0.0C226.7 0.2 233.3 0.5 240 1.0C246.7 1.5 253.3 2.3 260 3.0C266.7 3.7 273.3 4.3 280 5.0C286.7 5.7 293.3 6.2 300 7.0C306.7 7.8 313.3 9.0 320 10.0C326.7 11.0 333.3 12.0 340 13.0C346.7 14.0 353.3 14.7 360 16.0C366.7 17.3 373.3 19.3 380 21.0C386.7 22.7 393.3 24.0 400 26.0C406.7 28.0 413.3 30.7 420 33.0C426.7 35.3 433.3 37.7 440 40.0C446.7 42.3 453.3 44.3 460 47.0C466.7 49.7 473.3 53.2 480 56.0C486.7 58.8 493.3 61.0 500 64.0C506.7 67.0 513.3 70.5 520 74.0C526.7 77.5 533.3 81.2 540 85.0C546.7 88.8 553.3 92.5 560 96.6C566.7 100.7 573.3 104.9 580 109.4C586.7 113.9 593.3 118.5 600 123.4C606.7 128.2 613.3 133.3 620 138.5C626.7 143.7 633.3 149.2 640 154.8C646.7 160.3 653.3 166.1 660 172.1C666.7 178.1 673.3 184.2 680 190.5C686.7 196.8 693.3 203.3 700 210.0C706.7 216.7 713.3 223.5 720 230.5C726.7 237.5 733.3 244.7 740 252.0C746.7 259.3 753.3 266.3 760 274.0C766.7 281.7 773.3 290.7 780 298.0C786.7 305.3 796.7 314.7 800 318.0L800 340Z'/%3E%3C/svg%3E"),
			url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 330' preserveAspectRatio='none'%3E%3Cpath d='M800 0L0 0L0 330.0C3.3 324.7 13.3 308.0 20 298.0C26.7 288.0 33.3 278.8 40 270.0C46.7 261.2 53.3 253.0 60 245.0C66.7 237.0 73.3 229.5 80 222.0C86.7 214.5 93.3 206.9 100 199.9C106.7 192.9 113.3 186.2 120 179.8C126.7 173.4 133.3 167.3 140 161.5C146.7 155.7 153.3 150.1 160 144.8C166.7 139.5 173.3 134.4 180 129.6C186.7 124.8 193.3 120.2 200 115.9C206.7 111.5 213.3 107.4 220 103.5C226.7 99.6 233.3 95.9 240 92.4C246.7 88.9 253.3 85.6 260 82.4C266.7 79.3 273.3 76.3 280 73.5C286.7 70.8 293.3 68.2 300 65.7C306.7 63.2 313.3 60.9 320 58.7C326.7 56.6 333.3 54.6 340 52.7C346.7 50.8 353.3 49.0 360 47.4C366.7 45.7 373.3 44.2 380 42.8C386.7 41.4 393.3 40.1 400 38.8C406.7 37.6 413.3 36.5 420 35.5C426.7 34.4 433.3 33.5 440 32.6C446.7 31.8 453.3 31.0 460 30.3C466.7 29.6 473.3 28.9 480 28.3C486.7 27.7 493.3 27.2 500 26.7C506.7 26.3 513.3 25.9 520 25.5C526.7 25.1 533.3 24.8 540 24.5C546.7 24.2 553.3 23.9 560 23.7C566.7 23.5 573.3 23.3 580 23.1C586.7 23.0 593.3 22.8 600 22.7C606.7 22.6 613.3 22.5 620 22.4C626.7 22.3 633.3 22.3 640 22.2C646.7 22.2 653.3 22.1 660 22.1C666.7 22.1 673.3 22.1 680 22.0C686.7 22.0 693.3 22.0 700 22.0C706.7 22.0 713.3 22.0 720 22.0C726.7 22.0 733.3 22.0 740 22.0C746.7 22.0 753.3 21.8 760 22.0C766.7 22.2 773.3 23.0 780 23.5C786.7 24.0 796.7 24.8 800 25.0L800 0Z'/%3E%3C/svg%3E"),
			linear-gradient(#000, #000);
		-webkit-mask-position: top, bottom, 0 170px;
		mask-position: top, bottom, 0 170px;
		-webkit-mask-size: 100% 170px, 100% 165px, 100% calc(100% - 335px);
		mask-size: 100% 170px, 100% 165px, 100% calc(100% - 335px);
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
	}
}

/* br.sp — smartphone-only line breaks (hidden on PC) */
br.sp {
	display: none;
}

@media only screen and (max-width: 1024px) {
	br.sp {
		display: block;
	}
}