@charset "UTF-8";

body.ouchi-lp-page {
	margin: 0;
	background: #fff;
}

@font-face {
	font-family: "Noto Sans JP";
	src: url("lib/fonts/ouchi-lp/NotoSansJP-VF.ttf") format("truetype");
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
}

@font-face {
	font-family: "Zen Maru Gothic";
	src: url("lib/fonts/ouchi-lp/ZenMaruGothic-Medium.ttf") format("truetype");
	font-style: normal;
	font-weight: 500;
	font-display: swap;
}

@font-face {
	font-family: "Zen Maru Gothic";
	src: url("lib/fonts/ouchi-lp/ZenMaruGothic-Bold.ttf") format("truetype");
	font-style: normal;
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Jost";
	src: url("lib/fonts/ouchi-lp/Jost-Variable.ttf") format("truetype");
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
}

/* おうちカンパニー広告LP（LP10総合版） */
.ouchi-lp {
	--ouchi-text: #333333;
	--ouchi-orange: #fa820d;
	--ouchi-pink: #fd8d8d;
	--ouchi-light-02: #f6b4b4;
	--ouchi-light-pink: #ffdfdf;
	--ouchi-green: #7cbebe;
	--ouchi-light-orange: #f5bb63;
	--ouchi-dark-green: #368f92;
	--ouchi-purple: #afa3f7;
	--ouchi-light-purple: #e8e6f4;
	--ouchi-red: #e25858;
	--ouchi-beige: #fcf0d9;
	--ouchi-sky: #6de2ff;
	--ouchi-light-blue: #e3f7fc;
	--ouchi-gray: #adadad;
	color: var(--ouchi-text);
	font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 16px;
	line-height: 1.75;
	overflow: hidden;
	background: #fff;
}

/*
 * Xeory's base.css is unlayered, while the reusable LP foundations below live
 * in ouchi-legacy. Revert only LP descendants to that layer before applying
 * the unlayered Figma fidelity rules that follow. This keeps the reset local
 * and prevents Xeory's global margin/padding/image/form rules from winning.
 */
.ouchi-lp {
	box-sizing: content-box;
}

.ouchi-lp *,
.ouchi-lp *::before,
.ouchi-lp *::after {
	all: revert-layer;
}

.ouchi-lp .ouchi-form input,
.ouchi-lp .ouchi-form textarea,
.ouchi-lp .ouchi-form button {
	all: revert-layer;
}

/*
 * Exact Figma assets and geometry (file fRASqQ6dotN5HyVlWnolcn).
 * This final layer intentionally supersedes the earlier reconstruction rules.
 */
@media screen and (min-width: 768px) {
	.ouchi-lp {
		font-family: "Noto Sans JP", "Yu Gothic", sans-serif;
	}

	.ouchi-lp :where(h1, h2, h3),
	.ouchi-button,
	.ouchi-strengths__message strong {
		font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
	}

	.ouchi-sp-only {
		display: none;
	}

	.ouchi-section-heading__en,
	.ouchi-strength-card__number,
	.ouchi-flow__step,
	.ouchi-faq__mark,
	.ouchi-footer__copy {
		font-family: "Jost", Arial, sans-serif;
	}

	.ouchi-section-heading h2 {
		letter-spacing: 0;
	}

	/* FV + PROBLEM share one 1440 x 1691 Figma background. */
	.ouchi-fv {
		isolation: isolate;
		min-height: 1000px;
		background: transparent;
		overflow: visible;
	}

	.ouchi-fv::before {
		content: "";
		position: absolute;
		z-index: -1;
		top: 0;
		left: 50%;
		width: 1440px;
		height: 1691px;
		background: url("lib/images/ouchi-lp/figma/fv-background-mask.svg") 0 0 / 1440px 1691px no-repeat;
		transform: translateX(-50%);
		pointer-events: none;
	}

	.ouchi-fv > .ouchi-shape,
	.ouchi-faq > .ouchi-shape {
		display: none !important;
	}

	.ouchi-brand__logo {
		content: url("lib/images/ouchi-lp/figma/fv-logo.png");
		width: 244px;
		height: 60px;
		object-fit: contain;
	}

	.ouchi-brand__credit {
		font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
		font-weight: 500;
		letter-spacing: 0;
	}

	.ouchi-fv__copy {
		top: 132px;
		left: 130px;
		width: 1107px;
	}

	.ouchi-fv__title {
		width: 1107px;
		font-size: 52px;
		font-weight: 500;
		line-height: 1.55;
		letter-spacing: 0;
	}

	.ouchi-fv__lead {
		top: 173px;
		left: 3px;
		font-size: 22px;
		font-weight: 500;
		line-height: 1.8;
		letter-spacing: .88px;
	}

	.ouchi-benefits {
		top: 366px;
		left: -7px;
		margin-left: 0;
	}

	.ouchi-benefit {
		justify-content: flex-start;
		padding-top: 46px;
		border-radius: 0;
		background-color: transparent !important;
		background-position: 0 8px !important;
		background-size: 140px 140px !important;
		background-repeat: no-repeat !important;
		font-weight: 500;
	}

	.ouchi-benefit--blue { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-blue.svg") !important; }
	.ouchi-benefit--orange { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-orange.svg") !important; }
	.ouchi-benefit--pink { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-pink.svg") !important; }
	.ouchi-benefit--purple { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-purple.svg") !important; }

	.ouchi-benefit span {
		display: block;
		top: 0;
		width: 48px;
		height: 48px;
		border-radius: 0;
		background-color: transparent !important;
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		font-size: 0;
	}

	.ouchi-benefit span::after {
		content: "";
		display: block;
		position: absolute;
		inset: 0;
		background-position: center;
		background-repeat: no-repeat;
	}

	.ouchi-benefit--blue span {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-blue-icon-bg.svg");
	}

	.ouchi-benefit--blue span::after {
		content: "¥0";
		display: grid;
		place-items: center;
		color: #fff;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 16px;
		font-weight: 700;
	}

	.ouchi-benefit--orange span {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-orange-icon-bg.svg");
	}

	.ouchi-benefit--orange span::after {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-ok-icon.svg");
		background-size: 16.9211px 29px;
	}

	.ouchi-benefit--pink span {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-female-icon.svg");
	}

	.ouchi-benefit--purple span {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-purple-icon-bg.svg");
	}

	.ouchi-benefit--purple span::after {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-memo-icon.svg");
		background-size: 23.5px 21.5px;
	}

	.ouchi-button--wide {
		top: 570px;
		left: 29px;
		height: 70px;
		font-size: 24px;
		letter-spacing: .96px;
	}

	.ouchi-button--wide span,
	.ouchi-form__button span {
		width: 17.3205px;
		height: 15px;
		background: url("lib/images/ouchi-lp/figma/fv-cta-arrow.svg") center / contain no-repeat;
		font-size: 0;
		transform: rotate(90deg);
	}

	.ouchi-fv__shop {
		top: 326px;
		border-radius: 0;
		-webkit-mask: url("lib/images/ouchi-lp/figma/fv-shop-mask.svg") 0 0 / 588px 504px no-repeat;
		mask: url("lib/images/ouchi-lp/figma/fv-shop-mask.svg") 0 0 / 588px 504px no-repeat;
	}

	.ouchi-fv__shop img {
		content: url("lib/images/ouchi-lp/figma/fv-shop-source.png");
	}

	.ouchi-fv__mascot--purple {
		content: url("lib/images/ouchi-lp/figma/fv-mascot-purple-source.png");
		top: 68px;
		left: 1076px;
		width: 157px;
		height: 157px;
		object-fit: contain;
	}

	.ouchi-fv__mascot--pink {
		content: url("lib/images/ouchi-lp/figma/fv-mascot-pink-source.png");
		top: 81px;
		left: 1179px;
		width: 164px;
		height: 165px;
		object-fit: contain;
	}

	.ouchi-problems {
		position: relative;
		z-index: 0;
		background: transparent;
	}

	.ouchi-problems .ouchi-section-heading__en {
		font-size: 18px;
		letter-spacing: 2.88px;
	}

	.ouchi-problems .ouchi-section-heading {
		width: 546px;
		margin-inline: auto;
	}

	.ouchi-problems .ouchi-heading-dots {
		width: 62px;
		height: 10px;
		margin-top: 18px;
		background: url("lib/images/ouchi-lp/figma/problems-heading-dots.svg") 0 0 / 62px 10px no-repeat;
	}

	.ouchi-problems__body {
		margin-top: 46px;
	}

	.ouchi-problems__list {
		grid-template-columns: 260px 320px 333px;
		column-gap: 40px;
		row-gap: 24px;
	}

	.ouchi-problems__list li {
		min-height: 80px;
		padding: 0 0 20px;
		border: 0;
		font-size: 20px;
		font-weight: 500;
		line-height: 1.4;
	}

	.ouchi-problems__list li::after {
		content: "";
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
		height: 20px;
		border: 0;
		background-color: transparent;
		background-position: 0 0;
		background-repeat: no-repeat;
		background-size: 100% 100%;
		transform: none;
	}

	.ouchi-problems__list li:nth-child(1)::after { width: 260px; background-image: url("lib/images/ouchi-lp/figma/problems-decoration-1.svg"); }
	.ouchi-problems__list li:nth-child(2)::after { width: 220px; background-image: url("lib/images/ouchi-lp/figma/problems-decoration-2.svg"); }
	.ouchi-problems__list li:nth-child(3)::after { width: 305px; background-image: url("lib/images/ouchi-lp/figma/problems-decoration-3.svg"); }
	.ouchi-problems__list li:nth-child(4)::after { width: 280px; background-image: url("lib/images/ouchi-lp/figma/problems-decoration-4.svg"); }
	.ouchi-problems__list li:nth-child(5)::after { width: 320px; background-image: url("lib/images/ouchi-lp/figma/problems-decoration-5.svg"); }
	.ouchi-problems__list li:nth-child(6)::after { width: 220px; background-image: url("lib/images/ouchi-lp/figma/problems-decoration-6.svg"); }

	.ouchi-problems__people {
		margin-top: 40px;
	}

	.ouchi-person-crop img {
		content: url("lib/images/ouchi-lp/figma/problems-people-source.png");
	}

	/* STRENGTH */
	.ouchi-strengths__message {
		display: block;
		position: relative;
		height: 172px;
		min-height: 172px;
		margin-top: 130px;
		border-radius: 0;
		background: url("lib/images/ouchi-lp/figma/strengths-speech-bubble.svg") 0 0 / 1080px 172px no-repeat;
	}

	.ouchi-strengths__message::after {
		display: none;
	}

	.ouchi-strengths__message strong {
		position: absolute;
		z-index: 2;
		top: 35px;
		left: 0;
		width: 100%;
		font-size: 38px;
		font-weight: 700;
		line-height: 1.4;
		letter-spacing: 0;
		text-align: center;
	}

	.ouchi-strengths__message-art {
		position: absolute;
		z-index: 3;
		width: 240px;
		height: 220px;
	}

	.ouchi-strengths__message-art--left {
		top: -73px;
		left: 35px;
	}

	.ouchi-strengths__message-art--left .ouchi-strengths__message-mascot {
		content: url("lib/images/ouchi-lp/figma/strengths-mascot-pink-source.png");
		top: 16.03px;
		left: 16.03px;
		width: 173.35px;
		height: 173.35px;
		object-fit: contain;
		transform: scaleX(-1) rotate(-11.92deg);
		transform-origin: center;
	}

	.ouchi-strengths__message-art--left .ouchi-strengths__message-deco {
		content: url("lib/images/ouchi-lp/figma/strengths-house-deco-source.png");
		top: -16px;
		left: -6px;
		width: 75px;
		height: 90px;
		object-fit: contain;
	}

	.ouchi-strengths__message-art--right {
		top: -96px;
		left: 858px;
	}

	.ouchi-strengths__message-art--right .ouchi-strengths__message-mascot {
		content: url("lib/images/ouchi-lp/figma/strengths-mascot-green-source.png");
		top: 10.145px;
		left: 10.145px;
		width: 216.768px;
		height: 216.768px;
		object-fit: contain;
		transform: rotate(5.65deg);
		transform-origin: center;
	}

	.ouchi-strengths__message-art--right .ouchi-strengths__message-deco {
		content: url("lib/images/ouchi-lp/figma/strengths-planets-deco-source.png");
		top: 19px;
		left: 124px;
		width: 109px;
		height: 77px;
		object-fit: contain;
		transform: rotate(13.39deg);
	}

	.ouchi-strengths > .ouchi-container > .ouchi-section-heading {
		width: 819px;
		margin-top: 48px;
		margin-inline: auto;
	}

	.ouchi-strengths .ouchi-heading-dots {
		background: url("lib/images/ouchi-lp/figma/strengths-heading-dots.svg") 0 0 / 62px 10px no-repeat;
	}

	.ouchi-strength-grid {
		gap: 78px 60px;
		margin-top: 78px;
	}

	.ouchi-strength-card__number {
		background: url("lib/images/ouchi-lp/figma/strengths-point-badge.svg") 0 0 / 110px 110px no-repeat;
	}

	.ouchi-strength-card__media {
		border-radius: 16px;
	}

	.ouchi-strength-art--01 img,
	.ouchi-strength-art--03 img,
	.ouchi-strength-art--04 img { content: url("lib/images/ouchi-lp/figma/strengths-collage-source.png"); }
	.ouchi-strength-art--02 img { content: url("lib/images/ouchi-lp/figma/strengths-proscons-source.png"); }
	.ouchi-strength-art--05 img { content: url("lib/images/ouchi-lp/figma/strengths-weekly-source.png"); }
	.ouchi-strength-art--06 img { content: url("lib/images/ouchi-lp/figma/strengths-staff-source.png"); }

	.ouchi-strength-card h3 {
		font-size: 24px;
		line-height: 1.4;
	}

	.ouchi-strength-card > p:last-child {
		font-size: 18px;
		line-height: 1.4;
	}

	/* FLOW: real HTML and the provided line asset replace the legacy SVG snapshot. */
	.ouchi-flow__diagram {
		display: none !important;
	}

	.ouchi-flow__list {
		display: block;
		position: relative;
		width: 846px;
		margin-top: 56px;
	}

	.ouchi-flow__list::before {
		content: "";
		position: absolute;
		z-index: 0;
		top: 37px;
		left: 35px;
		width: 422px;
		height: 1px;
		background: url("lib/images/ouchi-lp/figma/flow-line.svg") 0 0 / 422px 1px no-repeat;
		transform: rotate(90deg);
		transform-origin: 0 0;
	}

	.ouchi-flow .ouchi-heading-dots {
		background: url("lib/images/ouchi-lp/figma/flow-heading-dots.svg") 0 0 / 62px 10px no-repeat;
	}

	.ouchi-flow .ouchi-section-heading,
	.ouchi-faq .ouchi-section-heading,
	.ouchi-contact .ouchi-section-heading {
		width: 819px;
		margin-inline: auto;
	}

	.ouchi-flow__item,
	.ouchi-flow__item:nth-child(3) {
		grid-template-columns: 70px 752px;
		gap: 24px;
		min-height: 141px;
		padding: 0;
	}

	.ouchi-flow__item:last-child {
		min-height: 70px;
	}

	.ouchi-flow__item:not(:last-child)::before {
		display: none;
	}

	.ouchi-flow__step {
		position: relative;
		z-index: 1;
		border-radius: 16px;
		font-size: 16px;
		font-weight: 500;
	}

	.ouchi-flow__step strong {
		font-size: 20px;
	}

	.ouchi-flow__item h3 {
		font-size: 24px;
		font-weight: 500;
		line-height: 1.4;
	}

	.ouchi-flow__item p {
		margin-top: 8px;
		font-size: 18px;
		line-height: 1.6;
		letter-spacing: .72px;
	}

	/* FAQ */
	.ouchi-faq {
		isolation: isolate;
		background: #fff;
	}

	.ouchi-faq::before {
		content: "";
		position: absolute;
		z-index: -1;
		inset: 0 auto auto 50%;
		width: 1440px;
		height: 1299px;
		background: url("lib/images/ouchi-lp/figma/faq-background.svg") 0 0 / 1440px 1299px no-repeat;
		transform: translateX(-50%);
	}

	.ouchi-faq .ouchi-heading-dots {
		background: url("lib/images/ouchi-lp/figma/faq-heading-dots.svg") 0 0 / 62px 10px no-repeat;
	}

	.ouchi-faq__question {
		grid-template-columns: 36px 1fr 20px;
		gap: 24px;
		min-height: 68px;
		padding: 16px 24px;
		border-radius: 10px;
		background: #fff;
		font-size: 18px;
		font-weight: 500;
	}

	.ouchi-faq__item.is-open .ouchi-faq__question {
		border-radius: 10px 10px 0 0;
		background: #f5bb63;
	}

	.ouchi-faq__mark {
		background: url("lib/images/ouchi-lp/figma/faq-q-circle.svg") center / 36px 36px no-repeat;
	}

	.ouchi-faq__item.is-open .ouchi-faq__question .ouchi-faq__mark {
		background: url("lib/images/ouchi-lp/figma/faq-open-q-circle.svg") center / 36px 36px no-repeat;
	}

	.ouchi-faq__toggle::before,
	.ouchi-faq__toggle::after {
		display: none;
	}

	.ouchi-faq__toggle {
		width: 16px;
		height: 16px;
		background: url("lib/images/ouchi-lp/figma/faq-plus.svg") center / 16px 16px no-repeat;
	}

	.ouchi-faq__item.is-open .ouchi-faq__toggle {
		background: url("lib/images/ouchi-lp/figma/faq-minus.svg") center / 2px 16px no-repeat;
		transform: rotate(90deg);
	}

	.ouchi-faq__answer {
		height: 90px;
		grid-template-columns: 36px 1fr;
		gap: 24px;
		padding: 16px 24px;
		border-radius: 0 0 10px 10px;
		background: #fff;
		font-size: 16px;
		line-height: 1.8;
	}

	.ouchi-faq__answer .ouchi-faq__mark {
		border-radius: 50%;
		background: url("lib/images/ouchi-lp/figma/faq-q-circle.svg") center / 36px 36px no-repeat;
		color: #fff;
	}

	/* SHOP */
	.ouchi-shop .ouchi-heading-dots {
		background: url("lib/images/ouchi-lp/figma/shop-heading-dots.svg") 0 0 / 62px 10px no-repeat;
	}

	.ouchi-shop__heading-row > .ouchi-section-heading {
		left: 130.5px;
		width: 819px;
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:first-child img:first-child {
		content: url("lib/images/ouchi-lp/figma/shop-mascot-green-source.png");
		top: 11.4px;
		left: 11.4px;
		width: 163.611px;
		transform: scaleX(-1) rotate(-8.67deg);
		transform-origin: center;
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:first-child img:last-child {
		content: url("lib/images/ouchi-lp/figma/shop-mascot-orange-source.png");
		transform: scaleX(-1);
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:last-child img:first-child {
		content: url("lib/images/ouchi-lp/figma/shop-mascot-purple-source.png");
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:last-child img:last-child {
		content: url("lib/images/ouchi-lp/figma/shop-mascot-blue-source.png");
	}

	.ouchi-shop__details > div {
		position: relative;
		border: 0;
	}

	.ouchi-shop__details > div:not(:last-child)::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 420px;
		height: 1px;
		background: url("lib/images/ouchi-lp/figma/shop-line.svg") 0 0 / 420px 1px no-repeat;
	}

	.ouchi-shop__photo {
		border-radius: 0;
		-webkit-mask: url("lib/images/ouchi-lp/figma/shop-photo-mask.svg") 0 0 / 400px 380px no-repeat;
		mask: url("lib/images/ouchi-lp/figma/shop-photo-mask.svg") 0 0 / 400px 380px no-repeat;
	}

	.ouchi-shop__photo img {
		content: url("lib/images/ouchi-lp/figma/shop-photo-source.png");
	}

	/* FOOTER */
	.ouchi-footer__credit {
		content: url("lib/images/ouchi-lp/figma/footer-logo.png");
		width: 244px;
		height: 60px;
		object-fit: contain;
	}

	.ouchi-footer__inner::after {
		content: "powered by MATSURIKA";
		position: absolute;
		top: 96px;
		left: 0;
		font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
		font-size: 14px;
		font-weight: 500;
		line-height: 1.2;
	}
}

@media screen and (max-width: 767px) {
	.ouchi-fv {
		isolation: isolate;
		height: 760px;
		min-height: 760px;
		padding: 0;
		overflow: hidden;
		background: transparent;
	}

	.ouchi-fv::before {
		content: "";
		position: absolute;
		z-index: -1;
		inset: 0 auto auto 50%;
		width: 375px;
		height: 760px;
		background: url("lib/images/ouchi-lp/figma/sp-fv-background.svg") 0 0 / 375px 760px no-repeat;
		transform: translateX(-50%);
	}

	.ouchi-fv > .ouchi-shape {
		display: none;
	}

	.ouchi-fv__inner {
		width: 375px;
		height: 760px;
	}

	.ouchi-brand {
		position: absolute;
		top: 8px;
		left: 16px;
		width: 158px;
		transform: none;
	}

	.ouchi-brand__logo,
	.ouchi-footer__credit {
		content: url("lib/images/ouchi-lp/figma/fv-logo.png");
	}

	.ouchi-brand__logo {
		width: 158px;
		height: 39px;
		object-fit: contain;
	}

	.ouchi-brand__credit {
		margin: 0;
		font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
		font-size: 14px;
		font-weight: 500;
		line-height: 1;
		letter-spacing: 0;
	}

	.ouchi-fv__grid,
	.ouchi-fv__copy,
	.ouchi-fv__visual {
		position: static;
		width: auto;
		margin: 0;
		padding: 0;
	}

	.ouchi-fv__title {
		position: absolute;
		top: 83px;
		left: 32px;
		width: 311px;
		font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
		font-size: 22px;
		font-weight: 500;
		line-height: 1.3;
		letter-spacing: 0;
	}

	.ouchi-fv__title-line {
		display: block;
	}

	.ouchi-fv__title-line + br {
		display: none;
	}

	.ouchi-fv__title-line + br + .ouchi-fv__title-line {
		margin-top: 8px;
	}

	.ouchi-sp-only {
		display: inline;
	}

	.ouchi-fv__lead {
		position: absolute;
		top: 458px;
		left: 32px;
		width: 330px;
		margin: 0;
		font-size: 15px;
		font-weight: 500;
		line-height: 1.6;
		letter-spacing: .6px;
	}

	.ouchi-benefits {
		position: absolute;
		top: 570px;
		left: 16px;
		display: grid;
		grid-template-columns: repeat(4, 82px);
		gap: 4.699px;
		width: 342.1px;
		margin: 0;
	}

	.ouchi-benefit {
		position: relative;
		justify-content: flex-start;
		width: 82px;
		height: 87px;
		min-height: 0;
		padding-top: 37px;
		border-radius: 0;
		background-color: transparent;
		background-position: 0 5px;
		background-repeat: no-repeat;
		background-size: 82px 82px;
		font-size: 11px;
		font-weight: 500;
		line-height: normal;
	}

	.ouchi-benefit--blue { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-blue.svg"); }
	.ouchi-benefit--orange { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-orange.svg"); }
	.ouchi-benefit--pink { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-pink.svg"); }
	.ouchi-benefit--purple { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-purple.svg"); }

	.ouchi-benefit span {
		display: block;
		position: absolute;
		top: 0;
		left: 27px;
		width: 28px;
		height: 28px;
		margin: 0;
		border-radius: 0;
		background-color: transparent;
		background-position: center;
		background-repeat: no-repeat;
		background-size: contain;
		font-size: 0;
	}

	.ouchi-benefit span::after {
		content: "";
		display: block;
		position: absolute;
		inset: 0;
		background-position: center;
		background-repeat: no-repeat;
	}

	.ouchi-benefit--blue span { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-blue-icon-bg.svg"); }
	.ouchi-benefit--blue span::after {
		content: "¥0";
		display: grid;
		place-items: center;
		color: #fff;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 10px;
		font-weight: 700;
	}
	.ouchi-benefit--orange span { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-orange-icon-bg.svg"); }
	.ouchi-benefit--orange span::after {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-ok-icon.svg");
		background-size: 10px 17px;
	}
	.ouchi-benefit--pink span { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-female-icon.svg"); }
	.ouchi-benefit--purple span { background-image: url("lib/images/ouchi-lp/figma/fv-benefit-purple-icon-bg.svg"); }
	.ouchi-benefit--purple span::after {
		background-image: url("lib/images/ouchi-lp/figma/fv-benefit-memo-icon.svg");
		background-size: 14px 14px;
	}

	.ouchi-button--wide {
		position: absolute;
		top: 673px;
		left: 32px;
		width: 311px;
		height: 56px;
		min-height: 56px;
		margin: 0;
		font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif;
		font-size: 18px;
		letter-spacing: .72px;
	}

	.ouchi-button--wide span {
		width: 17.3205px;
		height: 15px;
		background: url("lib/images/ouchi-lp/figma/fv-cta-arrow.svg") center / contain no-repeat;
		font-size: 0;
		transform: rotate(90deg);
	}

	.ouchi-fv__shop {
		position: absolute;
		top: 223px;
		left: 103px;
		width: 256px;
		height: 219.429px;
		border-radius: 0;
		-webkit-mask: url("lib/images/ouchi-lp/figma/sp-fv-photo-mask.svg") 0 0 / 256px 219.429px no-repeat;
		mask: url("lib/images/ouchi-lp/figma/sp-fv-photo-mask.svg") 0 0 / 256px 219.429px no-repeat;
	}

	.ouchi-fv__shop img,
	.ouchi-shop__photo img {
		content: url("lib/images/ouchi-lp/figma/fv-shop-source.png");
	}

	.ouchi-fv__shop img {
		position: absolute;
		top: -128.871px;
		left: -71.837px;
		width: 529.85px;
		height: 397.932px;
		max-width: none;
		object-fit: fill;
	}

	.ouchi-fv__mascot--purple {
		content: url("lib/images/ouchi-lp/figma/fv-mascot-purple-source.png");
		position: absolute;
		top: 31.27px;
		left: 204.06px;
		width: 97.439px;
		height: 97.439px;
		max-width: none;
		object-fit: contain;
		transform: rotate(-6.82deg);
		transform-origin: center;
	}

	.ouchi-fv__mascot--pink {
		content: url("lib/images/ouchi-lp/figma/fv-mascot-pink-source.png");
		position: absolute;
		top: 54.95px;
		left: 250.52px;
		width: 102.094px;
		height: 102.094px;
		max-width: none;
		object-fit: contain;
		transform: rotate(11.92deg);
		transform-origin: center;
	}
	.ouchi-person-crop img { content: url("lib/images/ouchi-lp/figma/problems-people-source.png"); }
	.ouchi-strength-art--01 img,
	.ouchi-strength-art--03 img,
	.ouchi-strength-art--04 img { content: url("lib/images/ouchi-lp/figma/strengths-collage-source.png"); }
	.ouchi-strength-art--02 img { content: url("lib/images/ouchi-lp/figma/strengths-proscons-source.png"); }
	.ouchi-strength-art--05 img { content: url("lib/images/ouchi-lp/figma/strengths-weekly-source.png"); }
	.ouchi-strength-art--06 img { content: url("lib/images/ouchi-lp/figma/strengths-staff-source.png"); }
	.ouchi-shop__heading-row > .ouchi-shop__mascots:first-child img:first-child { content: url("lib/images/ouchi-lp/figma/shop-mascot-green-source.png"); }
	.ouchi-shop__heading-row > .ouchi-shop__mascots:first-child img:last-child { content: url("lib/images/ouchi-lp/figma/shop-mascot-orange-source.png"); }
	.ouchi-shop__heading-row > .ouchi-shop__mascots:last-child img:first-child { content: url("lib/images/ouchi-lp/figma/shop-mascot-purple-source.png"); }
	.ouchi-shop__heading-row > .ouchi-shop__mascots:last-child img:last-child { content: url("lib/images/ouchi-lp/figma/shop-mascot-blue-source.png"); }
}

@layer ouchi-legacy {

.ouchi-lp *,
.ouchi-lp *::before,
.ouchi-lp *::after {
	box-sizing: border-box;
}

.ouchi-lp :where(h1, h2, h3, p, ul, ol, dl, dd, figure) {
	margin: 0;
}

.ouchi-lp :where(ul, ol) {
	padding: 0;
	list-style: none;
}

.ouchi-lp img {
	display: block;
	max-width: 100%;
	height: auto;
}

.ouchi-lp button,
.ouchi-lp input,
.ouchi-lp textarea {
	font: inherit;
}

.ouchi-container {
	position: relative;
	z-index: 1;
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
}

.ouchi-container--narrow {
	width: min(1040px, calc(100% - 48px));
}

.ouchi-container--faq {
	width: min(880px, calc(100% - 48px));
}

.ouchi-container--form {
	width: min(920px, calc(100% - 48px));
}

.ouchi-section-heading {
	text-align: center;
}

.ouchi-section-heading__en {
	color: var(--ouchi-dark-green);
	font-family: "Jost", "Arial", sans-serif;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: .22em;
	line-height: 1.2;
}

.ouchi-section-heading__en--orange {
	color: var(--ouchi-orange);
}

.ouchi-section-heading__en--blue {
	color: var(--ouchi-sky);
}

.ouchi-section-heading h2 {
	margin-top: 14px;
	font-size: 42px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.45;
}

.ouchi-section-heading__lead {
	margin-top: 18px;
	font-size: 18px;
	line-height: 1.75;
}

.ouchi-heading-dots {
	display: block;
	width: 62px;
	height: 10px;
	margin: 30px auto 0;
	background:
		radial-gradient(circle at 5px 5px, var(--ouchi-dark-green) 0 5px, transparent 5.5px),
		radial-gradient(circle at 31px 5px, var(--ouchi-light-orange) 0 5px, transparent 5.5px),
		radial-gradient(circle at 57px 5px, var(--ouchi-light-02) 0 5px, transparent 5.5px);
}

.ouchi-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	min-height: 70px;
	padding: 16px 36px;
	border: 0;
	border-radius: 999px;
	background: var(--ouchi-orange);
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	font-weight: 500;
	font-size: 21px;
	letter-spacing: .03em;
	transition: transform .2s ease, filter .2s ease;
}

.ouchi-button:hover,
.ouchi-button:focus-visible {
	filter: brightness(1.06);
	transform: translateY(-2px);
}

.ouchi-button:focus-visible,
.ouchi-faq__question:focus-visible,
.ouchi-form :where(input, textarea):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--ouchi-dark-green), white 35%);
	outline-offset: 3px;
}

.ouchi-button--wide {
	width: 540px;
	max-width: 100%;
	margin-left: 29px;
	margin-top: 56px;
}

.ouchi-placeholder {
	color: #087f9c;
	text-decoration: underline;
	text-decoration-style: dashed;
	text-underline-offset: .2em;
}

/* FV */
.ouchi-fv {
	position: relative;
	min-height: 1000px;
	padding: 20px 0 80px;
	background: #fff;
}

.ouchi-brand {
	width: 250px;
	transform: translateX(-90px);
}

.ouchi-brand__logo {
	width: 250px;
}

.ouchi-brand__credit {
	margin-top: -2px;
	font-family: "Jost", "Arial", sans-serif;
	font-size: 14px;
	letter-spacing: .04em;
}

.ouchi-fv__grid {
	display: grid;
	grid-template-columns: 603px 588px;
	gap: 60px;
	align-items: start;
	margin-top: 41px;
}

.ouchi-fv__copy {
	padding-top: 4px;
}

.ouchi-fv__title {
	position: relative;
	z-index: 3;
	width: 1200px;
	max-width: none;
	font-size: 52px;
	font-weight: 500;
	letter-spacing: .02em;
	line-height: 1.55;
}

.ouchi-fv__lead {
	margin-top: 24px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.95;
}

.ouchi-benefits {
	display: grid;
	grid-template-columns: repeat(4, 140px);
	gap: 16px;
	width: 608px;
	margin-left: -7px;
	margin-top: 34px;
}

.ouchi-benefit {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	border-radius: 48% 52% 45% 55% / 55% 42% 58% 45%;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}

.ouchi-benefit span {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	margin-bottom: 7px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .82);
	font-family: "Jost", "Arial", sans-serif;
	font-size: 17px;
}

.ouchi-benefit--blue { background: #daf6fc; }
.ouchi-benefit--orange { background: #fff0d7; }
.ouchi-benefit--pink { background: #ffdddd; }
.ouchi-benefit--purple { background: #e9e6f5; }

.ouchi-benefit--blue span { background: var(--ouchi-sky); color: #fff; }
.ouchi-benefit--orange span { background: var(--ouchi-light-orange); color: #fff; }
.ouchi-benefit--pink span { background: var(--ouchi-pink); color: #fff; }
.ouchi-benefit--purple span { background: var(--ouchi-purple); color: #fff; }

.ouchi-fv__visual {
	position: relative;
	padding-top: 200px;
}

.ouchi-fv__shop {
	display: block;
	position: relative;
	z-index: 1;
	overflow: hidden;
	width: 588px;
	height: 506px;
	border-radius: 24px;
}

.ouchi-fv__shop img {
	position: absolute;
	top: -295px;
	left: -165px;
	width: 1217px;
	max-width: none;
	aspect-ratio: auto;
}

.ouchi-fv__mascot {
	position: absolute;
	z-index: 2;
	width: 136px;
}

.ouchi-fv__mascot--purple {
	top: -63px;
	right: 90px;
	transform: rotate(-5deg);
}

.ouchi-fv__mascot--pink {
	top: -27px;
	right: 18px;
	transform: rotate(8deg);
}

.ouchi-shape {
	position: absolute;
	pointer-events: none;
}

.ouchi-shape--fv-1 {
	top: -46px;
	left: 406px;
	width: 203px;
	height: 186px;
	border-radius: 56% 44% 63% 37%;
	background: rgba(253, 141, 141, .30);
	transform: rotate(22deg);
}

.ouchi-shape--fv-2 {
	top: 224px;
	left: -72px;
	width: 220px;
	height: 201px;
	border-radius: 42% 58% 63% 37%;
	background: var(--ouchi-light-purple);
}

.ouchi-shape--fv-3 {
	right: -36px;
	top: -34px;
	width: 176px;
	height: 185px;
	border-radius: 45% 55% 40% 60%;
	background: var(--ouchi-light-blue);
}

.ouchi-shape--fv-4 {
	top: 89px;
	left: 854px;
	width: 183px;
	height: 173px;
	border-radius: 46% 54% 51% 49% / 43% 44% 56% 57%;
	background: var(--ouchi-beige);
	transform: rotate(18deg);
}

.ouchi-shape--fv-5 {
	top: 780px;
	left: -27px;
	width: 203px;
	height: 183px;
	border-radius: 46% 54% 51% 49% / 43% 44% 56% 57%;
	background: var(--ouchi-light-pink);
	transform: rotate(18deg);
}

.ouchi-shape--fv-6 {
	top: 763px;
	right: -52px;
	width: 188px;
	height: 173px;
	border-radius: 46% 54% 51% 49% / 43% 44% 56% 57%;
	background: var(--ouchi-beige);
	transform: rotate(18deg);
}

/* Problems */
.ouchi-problems {
	position: relative;
	height: 691px;
	min-height: 691px;
	padding: 48px 0 43px;
	background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%);
}

.ouchi-problems .ouchi-container--narrow {
	width: 993px;
}

.ouchi-problems .ouchi-section-heading h2 {
	font-size: 42px;
}

.ouchi-problems .ouchi-heading-dots {
	background:
		radial-gradient(circle at 5px 5px, var(--ouchi-gray) 0 5px, transparent 5.5px),
		radial-gradient(circle at 31px 5px, var(--ouchi-gray) 0 5px, transparent 5.5px),
		radial-gradient(circle at 57px 5px, var(--ouchi-gray) 0 5px, transparent 5.5px);
}

.ouchi-problems__body {
	position: relative;
	margin-top: 38px;
}

.ouchi-problems__list {
	display: grid;
	grid-template-columns: 260px 300px 321px;
	column-gap: 56px;
	row-gap: 34px;
	position: relative;
	z-index: 2;
}

.ouchi-problems__list li {
	position: relative;
	padding: 0 0 14px;
	border-bottom: 2px solid #646464;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
}

.ouchi-problems__list li::after {
	content: "";
	position: absolute;
	bottom: -10px;
	left: 50%;
	width: 18px;
	height: 18px;
	border-right: 2px solid #646464;
	background: #f2f2f2;
	transform: translateX(-50%) rotate(-45deg);
}

.ouchi-problems__list em {
	color: #ff5f5f;
	font-style: normal;
}

.ouchi-problems__people {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 80px;
	margin-top: 44px;
}

.ouchi-person-crop {
	display: block;
	overflow: hidden;
	position: relative;
	flex: 0 0 auto;
	border-radius: 50%;
}

.ouchi-person-crop img {
	position: absolute;
	max-width: none;
	height: auto;
}

.ouchi-person-crop--1 { width: 134px; height: 133px; }
.ouchi-person-crop--1 img { top: -16px; left: -242px; width: 444px; }
.ouchi-person-crop--2 { width: 134px; height: 135px; }
.ouchi-person-crop--2 img { top: -15px; left: -68px; width: 445px; }
.ouchi-person-crop--3 { width: 133px; height: 133px; }
.ouchi-person-crop--3 img { top: -171px; left: -69px; width: 442px; }

/* Strengths */
.ouchi-strengths {
	display: flow-root;
	min-height: 2316px;
	padding: 0 0 120px;
	background: linear-gradient(180deg, #fff 0 10%, #fffaf1 35%, #fff0cf 100%);
}

.ouchi-strengths__message {
	display: grid;
	grid-template-columns: 210px 1fr 210px;
	align-items: center;
	position: relative;
	width: 1080px;
	max-width: 100%;
	min-height: 127px;
	margin: 130px auto 0;
	border-radius: 24px;
	background: #ff6868;
	color: #fff;
}

.ouchi-strengths__message::after {
	content: "";
	position: absolute;
	right: 255px;
	bottom: -46px;
	width: 54px;
	height: 48px;
	background: #ff6868;
	clip-path: polygon(0 0, 100% 0, 0 100%);
}

.ouchi-strengths__message strong {
	font-size: 36px;
	font-weight: 600;
	letter-spacing: .03em;
	text-align: center;
}

.ouchi-strengths__message-art {
	position: relative;
	z-index: 1;
	width: 210px;
	height: 127px;
}

.ouchi-strengths__message-art img {
	position: absolute;
	max-width: none;
	height: auto;
}

.ouchi-strengths__message-art--left .ouchi-strengths__message-mascot {
	top: -80px;
	left: 20px;
	width: 173px;
	transform: rotate(-12deg);
}

.ouchi-strengths__message-art--left .ouchi-strengths__message-deco {
	top: -89px;
	left: 15px;
	width: 75px;
}

.ouchi-strengths__message-art--right .ouchi-strengths__message-mascot {
	top: -96px;
	left: 9px;
	width: 217px;
	transform: rotate(5.65deg);
}

.ouchi-strengths__message-art--right .ouchi-strengths__message-deco {
	top: -77px;
	left: 130px;
	width: 109px;
	transform: rotate(13.4deg);
}

.ouchi-strengths > .ouchi-container > .ouchi-section-heading {
	margin-top: 85px;
}

.ouchi-strength-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 400px));
	justify-content: center;
	gap: 78px 60px;
	margin-top: 65px;
}

.ouchi-strength-card {
	position: relative;
	height: 461px;
	min-height: 461px;
	padding: 32px;
	border-radius: 0 24px 24px 24px;
	background: #fff;
	box-shadow: 0 0 30px rgba(250, 130, 13, .08);
}

.ouchi-strength-card--offset {
	top: 48px;
}

.ouchi-strength-card__number {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute;
	z-index: 2;
	top: -30px;
	left: -30px;
	width: 110px;
	height: 110px;
	border-radius: 50%;
	background: #ff8787;
	color: #fff;
	font-family: "Jost", "Arial", sans-serif;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.02;
}

.ouchi-strength-card__number strong {
	font-size: 38px;
}

.ouchi-strength-card__media {
	display: grid;
	place-items: center;
	overflow: visible;
	position: relative;
	width: 100%;
	height: 180px;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .05);
}

.ouchi-strength-art {
	display: block;
	overflow: hidden;
	position: absolute;
	flex: 0 0 auto;
}

.ouchi-strength-art img {
	position: absolute;
	max-width: none;
	height: auto;
}

.ouchi-strength-art--01 { top: 6px; left: 65px; width: 206px; height: 176px; }
.ouchi-strength-art--01 img { top: -44px; left: -10px; width: 433px; }
.ouchi-strength-art--02 { top: 15px; left: 40px; width: 256px; height: 145px; }
.ouchi-strength-art--02 img { top: -42px; left: -32px; width: 316px; }
.ouchi-strength-art--03 { top: -8px; left: 31px; width: 256px; height: 195px; }
.ouchi-strength-art--03 img { top: -343px; left: -11px; width: 538px; }
.ouchi-strength-art--04 { top: 0; left: 22px; width: 292px; height: 185px; }
.ouchi-strength-art--04 img { top: -339px; left: -257px; width: 549px; }
.ouchi-strength-art--05 { top: -6px; left: 63px; width: 210px; height: 191px; }
.ouchi-strength-art--05 img { top: -55px; left: -105px; width: 391px; }
.ouchi-strength-art--06 { top: 4px; left: 58px; width: 204px; height: 170px; }
.ouchi-strength-art--06 img { top: -45px; left: 0; width: 402px; }

.ouchi-strength-card h3 {
	margin-top: 28px;
	color: #ff5959;
	font-size: 22px;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
}

.ouchi-strength-card > p:last-child {
	margin-top: 18px;
	font-size: 16px;
	line-height: 1.75;
}

/* Flow */
.ouchi-flow {
	min-height: 967px;
	padding: 77px 0 80px;
	background: linear-gradient(180deg, #fff 0 44%, #e9fbfc 100%);
}

.ouchi-flow__list {
	width: min(846px, 100%);
	margin: 56px auto 0;
}

.ouchi-flow__item {
	display: grid;
	grid-template-columns: 70px 1fr;
	gap: 25px;
	position: relative;
	padding-bottom: 39px;
}

.ouchi-flow__item:nth-child(3) {
	padding-bottom: 40px;
}

.ouchi-flow__item:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 70px;
	left: 34px;
	bottom: -3px;
	width: 1px;
	background: var(--ouchi-green);
}

.ouchi-flow__step {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 70px;
	height: 70px;
	border-radius: 17px;
	background: var(--ouchi-green);
	color: #fff;
	font-family: "Jost", "Arial", sans-serif;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.1;
}

.ouchi-flow__step strong {
	font-size: 24px;
}

.ouchi-flow__item h3 {
	font-size: 23px;
	line-height: 1.45;
}

.ouchi-flow__item p {
	margin-top: 9px;
	font-size: 17px;
	line-height: 1.75;
}

/* FAQ */
.ouchi-faq {
	position: relative;
	min-height: 1299px;
	padding: 89px 0 91px;
	background: #fff;
}

.ouchi-faq__list {
	margin-top: 48px;
}

.ouchi-faq__item {
	border-bottom: 1px solid #eee;
}

.ouchi-faq__question {
	display: grid;
	grid-template-columns: 42px 1fr 24px;
	gap: 18px;
	align-items: center;
	width: 100%;
	min-height: 83px;
	padding: 15px 20px;
	border: 0;
	background: transparent;
	color: var(--ouchi-text);
	cursor: pointer;
	font-size: 18px;
	font-weight: 600;
	text-align: left;
}

.ouchi-faq__item.is-open .ouchi-faq__question {
	border-radius: 12px;
	background: var(--ouchi-light-orange);
	color: #fff;
}

.ouchi-faq__mark {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--ouchi-light-orange);
	color: #fff;
	font-family: "Jost", "Arial", sans-serif;
	font-weight: 600;
}

.ouchi-faq__item.is-open .ouchi-faq__question .ouchi-faq__mark {
	background: #fff;
	color: var(--ouchi-light-orange);
}

.ouchi-faq__toggle {
	position: relative;
	width: 20px;
	height: 20px;
}

.ouchi-faq__toggle::before,
.ouchi-faq__toggle::after {
	content: "";
	position: absolute;
	top: 9px;
	left: 2px;
	width: 16px;
	height: 1px;
	background: currentColor;
}

.ouchi-faq__toggle::after {
	transform: rotate(90deg);
	transition: transform .2s ease;
}

.ouchi-faq__item.is-open .ouchi-faq__toggle::after {
	transform: rotate(0);
}

.ouchi-faq__answer {
	display: grid;
	grid-template-columns: 42px 1fr;
	gap: 18px;
	padding: 20px 20px 7px;
	font-size: 17px;
}

.ouchi-faq__answer[hidden] {
	display: none;
}

.ouchi-faq__answer p {
	padding-top: 4px;
}

.ouchi-shape--faq-1 {
	top: -10px;
	left: 151px;
	width: 216px;
	height: 156px;
	border-radius: 44% 56% 64% 36%;
	background: #fff1d6;
}

.ouchi-shape--faq-2 {
	top: 90px;
	right: 91px;
	width: 200px;
	height: 196px;
	border-radius: 55% 45% 35% 65%;
	background: var(--ouchi-light-purple);
	transform: rotate(22deg);
}

.ouchi-shape--faq-3 {
	top: 385px;
	left: -48px;
	width: 228px;
	height: 220px;
	border-radius: 58% 42% 60% 40% / 44% 58% 42% 56%;
	background: var(--ouchi-light-pink);
	transform: rotate(24deg);
}

.ouchi-shape--faq-4 {
	top: 508px;
	right: -49px;
	width: 228px;
	height: 240px;
	border-radius: 54% 46% 42% 58% / 58% 45% 55% 42%;
	background: #bfe7f0;
	transform: rotate(15deg);
}

.ouchi-shape--faq-5 {
	top: 918px;
	left: 20px;
	width: 209px;
	height: 201px;
	border-radius: 55% 45% 42% 58% / 58% 45% 55% 42%;
	background: var(--ouchi-light-purple);
	transform: rotate(22deg);
}

.ouchi-shape--faq-6 {
	top: 961px;
	right: -1px;
	width: 201px;
	height: 208px;
	border-radius: 58% 42% 60% 40% / 44% 58% 42% 56%;
	background: var(--ouchi-beige);
	transform: rotate(19deg);
}

/* Shop */
.ouchi-shop {
	min-height: 961px;
	padding: 80px 0 100px;
	background: linear-gradient(180deg, rgba(217, 217, 217, 0) 44.03%, #ffe7e6 100%);
}

.ouchi-shop__panel {
	width: 1080px;
	height: 781px;
	min-height: 781px;
	padding: 45px 80px 58px;
	border-radius: 54px;
	background: var(--ouchi-beige);
}

.ouchi-shop__heading-row {
	display: grid;
	grid-template-columns: 190px 1fr 190px;
	align-items: center;
	position: relative;
}

.ouchi-shop__heading-row > .ouchi-section-heading {
	grid-column: 2;
}

.ouchi-shop__mascots {
	display: contents;
}

.ouchi-shop__mascots img {
	position: absolute;
	max-width: none;
	margin: 0;
}

.ouchi-shop__mascots:first-child img:nth-child(1) {
	top: -47px;
	left: 53px;
	width: 164px;
	transform: scaleX(-1) rotate(-8.67deg);
}

.ouchi-shop__mascots:first-child img:nth-child(2) {
	top: 1px;
	left: 144px;
	width: 115px;
	transform: scaleX(-1);
}

.ouchi-shop__mascots:last-child img:nth-child(1) {
	top: 5px;
	left: 661px;
	width: 103px;
}

.ouchi-shop__mascots:last-child img:nth-child(2) {
	top: -17px;
	left: 761px;
	width: 112px;
	transform: rotate(8.13deg);
}

.ouchi-shop__content {
	display: grid;
	grid-template-columns: 419px 400px;
	gap: 22px;
	align-items: center;
	width: 920px;
	height: 511px;
	margin-top: 28px;
	padding: 40px 39px;
	border-radius: 38px;
	background: #fff;
}

.ouchi-shop__details > div {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 14px;
	align-items: center;
	min-height: 55px;
	padding: 8px 0;
	border-bottom: 1px solid #ddd;
}

.ouchi-shop__details > div:last-child {
	border-bottom: 0;
}

.ouchi-shop__details dt {
	padding: 5px 4px;
	background: var(--ouchi-orange);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	white-space: nowrap;
}

.ouchi-shop__details dd {
	font-size: 16px;
	line-height: 1.55;
}

.ouchi-shop__photo {
	display: block;
	overflow: hidden;
	position: relative;
	width: 400px;
	height: 380px;
	border-radius: 22px;
}

.ouchi-shop__photo img {
	position: absolute;
	top: -200px;
	left: -120px;
	width: 872px;
	max-width: none;
	aspect-ratio: auto;
}

/* Contact */
.ouchi-contact {
	min-height: 1633px;
	padding: 83px 0 100px;
	background: #fff;
}

.ouchi-contact .ouchi-section-heading__lead small {
	font-size: 15px;
}

.ouchi-form {
	margin-top: 32px;
	padding: 80px 100px;
	border-radius: 42px;
	background: #fff3f3;
}

.ouchi-form__field + .ouchi-form__field {
	margin-top: 32px;
}

.ouchi-form__field label {
	display: block;
	margin-bottom: 0;
	font-size: 17px;
	font-weight: 600;
	line-height: 25px;
}

.ouchi-required {
	display: inline-block;
	padding: 1px 8px;
	border-radius: 999px;
	background: #ff6c6c;
	color: #fff;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.7;
	vertical-align: .15em;
}

.ouchi-form :where(input[type="text"], input[type="tel"], input[type="email"], textarea) {
	width: 100%;
	border: 1px solid #d7d7d7;
	border-radius: 0;
	background: #fff;
	color: var(--ouchi-text);
}

.ouchi-form :where(input[type="text"], input[type="tel"], input[type="email"]) {
	height: 45px;
	padding: 8px 12px;
}

.ouchi-form textarea {
	min-height: 439px;
	padding: 12px;
	resize: vertical;
}

.ouchi-form__privacy {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-top: 23px;
	font-size: 14px;
}

.ouchi-form__privacy input {
	width: 17px;
	height: 17px;
	margin-top: 3.5px;
}

.ouchi-form__button {
	display: flex;
	width: 380px;
	max-width: 100%;
	height: 60px;
	min-height: 60px;
	margin: 50px auto 0;
}

.ouchi-form__pending {
	margin-top: 18px;
	padding: 10px;
	border: 1px dashed var(--ouchi-orange);
	color: #8c4c00;
	font-size: 14px;
	text-align: center;
}

/* Footer */
.ouchi-footer {
	min-height: 170px;
	padding: 0;
	background: #f4f4f4;
}

.ouchi-footer__inner {
	position: relative;
	display: block;
	width: 920px;
	height: 170px;
	padding: 0;
}

.ouchi-footer__links {
	position: absolute;
	top: 52px;
	left: 302px;
	display: grid;
	grid-template-columns: repeat(5, max-content);
	gap: 10px 40px;
	font-size: 14px;
	line-height: 1.7;
}

.ouchi-footer__links span[data-todo-link] {
	color: #777;
	cursor: not-allowed;
}

.ouchi-footer__credit {
	position: absolute;
	top: 37px;
	left: 0;
	width: 244px;
}

.ouchi-footer__copy {
	position: absolute;
	top: 136px;
	left: 376px;
	font-family: "Jost", "Arial", sans-serif;
	font-size: 12px;
	text-align: left;
	transform: none;
}

/* Fade */
.ouchi-js .ouchi-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .7s ease, transform .7s ease;
}

.ouchi-js .ouchi-reveal.is-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.ouchi-js .ouchi-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.ouchi-button,
	.ouchi-faq__toggle::after {
		transition: none;
	}
}

@media screen and (max-width: 1024px) {
	.ouchi-fv__grid {
		grid-template-columns: 1.1fr .9fr;
		gap: 30px;
	}

	.ouchi-fv__title {
		font-size: 40px;
	}

	.ouchi-benefit {
		font-size: 13px;
	}

	.ouchi-shop__panel {
		padding-inline: 45px;
	}
}

@media screen and (max-width: 767px) {
	.ouchi-lp {
		font-size: 15px;
	}

	.ouchi-container,
	.ouchi-container--narrow,
	.ouchi-container--faq,
	.ouchi-container--form {
		width: min(100% - 32px, 560px);
	}

	.ouchi-section-heading__en {
		font-size: 13px;
	}

	.ouchi-section-heading h2 {
		margin-top: 8px;
		font-size: 26px;
		line-height: 1.45;
	}

	.ouchi-section-heading__lead {
		margin-top: 12px;
		font-size: 14px;
	}

	.ouchi-heading-dots {
		margin-top: 19px;
	}

	.ouchi-button {
		min-height: 56px;
		padding: 12px 24px;
		font-size: 17px;
	}

	.ouchi-fv {
		min-height: 970px;
		padding-top: 18px;
	}

	.ouchi-brand {
		width: 174px;
		transform: none;
	}

	.ouchi-brand__logo {
		width: 174px;
	}

	.ouchi-brand__credit {
		font-size: 10px;
	}

	.ouchi-fv__grid {
		display: flex;
		flex-direction: column;
		gap: 24px;
		margin-top: 34px;
	}

	.ouchi-fv__copy {
		padding-top: 0;
	}

	.ouchi-fv__title {
		width: auto;
		max-width: 100%;
		font-size: 28px;
		line-height: 1.55;
	}

	.ouchi-fv__lead {
		margin-top: 18px;
		font-size: 15px;
		line-height: 1.85;
	}

	.ouchi-benefits {
		grid-template-columns: repeat(4, 1fr);
		gap: 5px;
		width: auto;
		margin-left: 0;
		margin-top: 22px;
	}

	.ouchi-benefit {
		min-height: 82px;
		font-size: 10px;
	}

	.ouchi-benefit span {
		width: 25px;
		height: 25px;
		margin-bottom: 3px;
		font-size: 11px;
	}

	.ouchi-button--wide {
		width: 100%;
		margin-left: 0;
		margin-top: 26px;
	}

	.ouchi-fv__visual {
		width: 100%;
		padding-top: 58px;
	}

	.ouchi-fv__shop img {
		position: static;
		width: 100%;
		max-width: 100%;
		aspect-ratio: 1.78;
		object-fit: cover;
	}

	.ouchi-fv__shop {
		width: 100%;
		height: auto;
	}

	.ouchi-fv__mascot {
		width: 78px;
	}

	.ouchi-fv__mascot--purple {
		top: 0;
		right: 82px;
	}

	.ouchi-fv__mascot--pink {
		top: 7px;
		right: 18px;
	}

	.ouchi-shape--fv-1 {
		left: 62%;
		width: 110px;
		height: 100px;
	}

	.ouchi-shape--fv-2 {
		top: 165px;
		width: 100px;
		height: 115px;
	}

	.ouchi-shape--fv-4,
	.ouchi-shape--fv-5,
	.ouchi-shape--fv-6 {
		display: none;
	}

	.ouchi-problems .ouchi-container--narrow {
		width: min(100% - 32px, 560px);
	}

	.ouchi-problems {
		height: auto;
		min-height: 850px;
		padding-top: 58px;
	}

	.ouchi-problems .ouchi-section-heading h2 {
		font-size: 27px;
	}

	.ouchi-problems__body {
		margin-top: 32px;
	}

	.ouchi-problems__list {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.ouchi-problems__list li {
		padding-bottom: 10px;
		font-size: 14px;
		text-align: center;
	}

	.ouchi-problems__people {
		gap: 10px;
		margin-top: 34px;
	}

	.ouchi-person-crop--1 { width: 82px; height: 81px; }
	.ouchi-person-crop--1 img { top: -10px; left: -148px; width: 272px; }
	.ouchi-person-crop--2 { width: 82px; height: 83px; }
	.ouchi-person-crop--2 img { top: -9px; left: -42px; width: 272px; }
	.ouchi-person-crop--3 { width: 81px; height: 81px; }
	.ouchi-person-crop--3 img { top: -105px; left: -42px; width: 271px; }

	.ouchi-strengths {
		min-height: auto;
		padding-bottom: 74px;
	}

	.ouchi-strengths__message {
		grid-template-columns: 68px 1fr 68px;
		width: 100%;
		min-height: 78px;
		margin-top: 0;
		border-radius: 14px;
	}

	.ouchi-strengths__message::after {
		display: none;
	}

	.ouchi-strengths__message strong {
		font-size: 16px;
	}

	.ouchi-strengths__message-art {
		width: 68px;
		height: 78px;
	}

	.ouchi-strengths__message-art--left .ouchi-strengths__message-mascot {
		top: 4px;
		left: 14px;
		width: 58px;
	}

	.ouchi-strengths__message-art--left .ouchi-strengths__message-deco {
		top: 3px;
		left: 3px;
		width: 26px;
	}

	.ouchi-strengths__message-art--right .ouchi-strengths__message-mascot {
		top: 4px;
		left: 0;
		width: 62px;
	}

	.ouchi-strengths__message-art--right .ouchi-strengths__message-deco {
		top: 3px;
		left: 38px;
		width: 30px;
	}

	.ouchi-strengths > .ouchi-container > .ouchi-section-heading {
		margin-top: 58px;
	}

	.ouchi-strength-grid {
		grid-template-columns: 1fr;
		gap: 50px;
		margin-top: 66px;
	}

	.ouchi-strength-card,
	.ouchi-strength-card--offset {
		top: auto;
		height: auto;
		min-height: 0;
		padding: 26px 22px 28px;
		transform: none;
	}

	.ouchi-strength-card__number {
		top: -28px;
		left: -8px;
		width: 86px;
		height: 86px;
		font-size: 17px;
	}

	.ouchi-strength-card__number strong {
		font-size: 30px;
	}

	.ouchi-strength-card__media {
		height: 205px;
	}

	.ouchi-strength-art {
		position: relative;
		top: auto;
		left: auto;
	}

	.ouchi-strength-card h3 {
		margin-top: 22px;
		font-size: 19px;
	}

	.ouchi-strength-card > p:last-child {
		margin-top: 12px;
		font-size: 14px;
	}

	.ouchi-flow {
		min-height: auto;
		padding: 72px 0 66px;
	}

	.ouchi-flow__list {
		margin-top: 46px;
	}

	.ouchi-flow__item {
		grid-template-columns: 60px 1fr;
		gap: 18px;
		padding-bottom: 32px;
	}

	.ouchi-flow__item:nth-child(3) {
		padding-bottom: 32px;
	}

	.ouchi-flow__item:not(:last-child)::before {
		top: 58px;
		left: 29px;
	}

	.ouchi-flow__step {
		width: 60px;
		height: 60px;
		border-radius: 13px;
		font-size: 14px;
	}

	.ouchi-flow__step strong {
		font-size: 19px;
	}

	.ouchi-flow__item h3 {
		font-size: 18px;
	}

	.ouchi-flow__item p {
		font-size: 14px;
	}

	.ouchi-faq {
		min-height: auto;
		padding: 74px 0 76px;
	}

	.ouchi-faq__list {
		margin-top: 44px;
	}

	.ouchi-faq__question {
		grid-template-columns: 34px 1fr 20px;
		gap: 10px;
		min-height: 68px;
		padding: 12px 8px;
		font-size: 14px;
	}

	.ouchi-faq__mark {
		width: 32px;
		height: 32px;
	}

	.ouchi-faq__answer {
		grid-template-columns: 34px 1fr;
		gap: 10px;
		padding: 18px 8px 24px;
		font-size: 14px;
	}

	.ouchi-shape--faq-1 {
		top: -45px;
		left: 8%;
		width: 190px;
		height: 170px;
	}

	.ouchi-shape--faq-2 {
		top: 70px;
		right: 8%;
		width: 190px;
		height: 190px;
	}

	.ouchi-shape--faq-3,
	.ouchi-shape--faq-4,
	.ouchi-shape--faq-5,
	.ouchi-shape--faq-6 {
		display: none;
	}

	.ouchi-shop {
		min-height: auto;
		padding: 36px 0 50px;
	}

	.ouchi-shop__panel {
		width: 100%;
		height: auto;
		min-height: 0;
		padding: 30px 18px;
		border-radius: 30px;
	}

	.ouchi-shop__heading-row {
		grid-template-columns: 64px 1fr 64px;
	}

	.ouchi-shop__mascots img {
		position: static;
		width: 46px;
		max-width: 100%;
		margin-inline: -8px;
		transform: none;
	}

	.ouchi-shop__mascots {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.ouchi-shop__content {
		display: flex;
		flex-direction: column-reverse;
		gap: 24px;
		width: 100%;
		height: auto;
		margin-top: 24px;
		padding: 20px 16px;
		border-radius: 24px;
	}

	.ouchi-shop__photo {
		width: 100%;
		height: auto;
	}

	.ouchi-shop__photo img {
		position: static;
		width: 100%;
		max-width: 100%;
		height: auto;
		aspect-ratio: 1.25;
		object-fit: cover;
	}

	.ouchi-shop__details {
		width: 100%;
	}

	.ouchi-shop__details > div {
		grid-template-columns: 100px 1fr;
		gap: 10px;
	}

	.ouchi-shop__details dt,
	.ouchi-shop__details dd {
		font-size: 12px;
	}

	.ouchi-contact {
		min-height: auto;
		padding: 74px 0;
	}

	.ouchi-form {
		margin-top: 36px;
		padding: 36px 20px 42px;
		border-radius: 28px;
	}

	.ouchi-form__field + .ouchi-form__field {
		margin-top: 20px;
	}

	.ouchi-form__field label {
		margin-bottom: 6px;
		font-size: 14px;
		line-height: 1.75;
	}

	.ouchi-form :where(input[type="text"], input[type="tel"], input[type="email"]) {
		height: 49px;
	}

	.ouchi-form textarea {
		min-height: 230px;
	}

	.ouchi-form__privacy {
		margin-top: 30px;
		font-size: 12px;
	}

	.ouchi-form__privacy input {
		margin-top: 5px;
	}

	.ouchi-form__button {
		height: 56px;
		min-height: 56px;
		margin-top: 34px;
	}

	.ouchi-footer {
		min-height: 230px;
		padding: 30px 0 22px;
	}

	.ouchi-footer__inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 14px;
		width: min(100% - 32px, 560px);
		height: auto;
		padding-top: 0;
	}

	.ouchi-footer__links {
		position: static;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		font-size: 11px;
	}

	.ouchi-footer__credit {
		position: static;
		width: 150px;
	}

	.ouchi-footer__copy {
		position: static;
		text-align: center;
		transform: none;
	}
}

/* PC geometry verified against the saved 2026-09-30 section exports. */
.ouchi-flow__diagram {
	display: none !important;
}

.ouchi-shape--fv-4,
.ouchi-shape--fv-5,
.ouchi-shape--fv-6,
.ouchi-shape--faq-3,
.ouchi-shape--faq-4,
.ouchi-shape--faq-5,
.ouchi-shape--faq-6 {
	display: none;
}

@media screen and (min-width: 768px) {
	.ouchi-fv {
		min-height: 1000px;
		padding: 19px 0 0;
	}

	.ouchi-fv__inner {
		width: min(1440px, 100%);
		height: 981px;
	}

	.ouchi-brand {
		width: 244px;
		margin-left: 40px;
	}

	.ouchi-brand__logo {
		width: 244px;
		height: 60px;
	}

	.ouchi-brand__credit {
		margin-top: 2px;
		font-size: 14px;
		line-height: 1.2;
	}

	.ouchi-fv__grid {
		display: block;
		margin-top: 0;
	}

	.ouchi-fv__copy {
		position: absolute;
		top: 132px;
		left: 132px;
		width: 1080px;
		padding-top: 0;
	}

	.ouchi-fv__title {
		width: 1080px;
		font-size: 54px;
		font-weight: 500;
		line-height: 1.52;
	}

	.ouchi-fv__lead {
		position: absolute;
		top: 183px;
		left: 1px;
		margin-top: 0;
		font-size: 20px;
		font-weight: 400;
		line-height: 1.95;
	}

	.ouchi-benefits {
		position: absolute;
		top: 393px;
		left: -9px;
		width: 608px;
		grid-template-columns: repeat(4, 140px);
		gap: 16px;
		margin-top: 0;
	}

	.ouchi-benefit {
		position: relative;
		width: 140px;
		height: 140px;
		aspect-ratio: auto;
		padding-top: 43px;
		border-radius: 50%;
		font-size: 16px;
		line-height: 1.4;
	}

	.ouchi-benefit span {
		position: absolute;
		top: -8px;
		left: 46px;
		width: 48px;
		height: 48px;
		margin: 0;
		font-size: 17px;
	}

	.ouchi-button--wide {
		position: absolute;
		top: 570px;
		left: 27px;
		width: 540px;
		margin-top: 0;
	}

	.ouchi-fv__visual {
		position: static;
		padding-top: 0;
	}

	.ouchi-fv__shop {
		position: absolute;
		top: 326px;
		left: 793px;
		width: 588px;
		height: 504px;
	}

	.ouchi-fv__shop img {
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
	}

	.ouchi-fv__mascot {
		width: auto;
		max-width: none;
	}

	.ouchi-fv__mascot--purple {
		top: 68px;
		right: auto;
		left: 1076px;
		width: 157px;
		transform: rotate(-6.821deg);
		transform-origin: left top;
	}

	.ouchi-fv__mascot--pink {
		top: 81px;
		right: auto;
		left: 1179px;
		width: 164px;
		transform: rotate(11.918deg);
		transform-origin: left top;
	}

	.ouchi-shape--fv-1 {
		top: -42px;
		left: 413px;
		width: 194px;
		height: 182px;
		background: var(--ouchi-light-pink);
	}

	.ouchi-shape--fv-2 {
		top: 224px;
		left: -65px;
		width: 210px;
		height: 197px;
		background: var(--ouchi-light-purple);
		transform: none;
	}

	.ouchi-shape--fv-3 {
		top: -31px;
		right: auto;
		left: 1303px;
		width: 171px;
		height: 182px;
		background: var(--ouchi-light-blue);
	}

	.ouchi-shape--fv-4,
	.ouchi-shape--fv-5,
	.ouchi-shape--fv-6 {
		display: block;
	}

	.ouchi-shape--fv-4,
	.ouchi-shape--fv-5 {
		width: 176px;
		height: 164px;
		border-radius: 58% 42% 55% 45%;
		background: var(--ouchi-beige);
		transform: rotate(18deg);
	}

	.ouchi-shape--fv-4 {
		top: 97px;
		left: 855px;
	}

	.ouchi-shape--fv-5 {
		top: 771px;
		left: 1310px;
	}

	.ouchi-shape--fv-6 {
		top: 780px;
		left: -20px;
		width: 194px;
		height: 182px;
		border-radius: 56% 44% 63% 37%;
		background: var(--ouchi-light-pink);
		transform: rotate(22deg);
	}

	.ouchi-problems {
		height: 691px;
		min-height: 691px;
		padding: 0;
		overflow: hidden;
		background: linear-gradient(
			180deg,
			#fff 0 53.686%,
			#fafafa 58.3174%,
			#f5f5f5 62.9488%,
			#f0f0f0 67.5802%,
			#ededed 72.2116%,
			#e9e9e9 76.843%,
			#e6e6e6 81.4744%,
			#e3e3e3 86.1058%,
			#e1e1e1 90.7372%,
			#dfdfdf 95.3686%,
			#dedede 100%
		);
	}

	.ouchi-problems > .ouchi-container {
		width: 993px;
	}

	.ouchi-problems .ouchi-heading-dots {
		margin-top: 7px;
		background:
			radial-gradient(circle at 5px 5px, var(--ouchi-gray) 0 5px, transparent 5.5px),
			radial-gradient(circle at 31px 5px, var(--ouchi-gray) 0 5px, transparent 5.5px),
			radial-gradient(circle at 57px 5px, var(--ouchi-gray) 0 5px, transparent 5.5px);
	}

	.ouchi-problems__body {
		margin-top: 46px;
	}

	.ouchi-problems__list {
		grid-template-columns: 260px 306px 319px;
		justify-content: space-between;
		column-gap: 0;
		row-gap: 34px;
	}

	.ouchi-problems__people {
		gap: 80px;
		margin-top: 40px;
	}
}

@media screen and (min-width: 768px) {
	.ouchi-strengths {
		background: linear-gradient(180deg, #fff 0 24.36%, #ffebc5 100%);
	}

	.ouchi-strengths__message,
	.ouchi-strengths__message::after {
		background: #ff6868;
	}

	.ouchi-strengths__message strong {
		grid-column: 1 / -1;
	}

	.ouchi-strengths__message-art--left {
		position: absolute;
		top: -82px;
		left: 14px;
	}

	.ouchi-strengths__message-art--right {
		position: absolute;
		top: -72px;
		left: 886px;
	}

	.ouchi-strengths > .ouchi-container > .ouchi-section-heading {
		margin-top: 92px;
	}

	.ouchi-strengths > .ouchi-container > .ouchi-section-heading .ouchi-heading-dots {
		margin-top: 10px;
	}

	.ouchi-strength-grid {
		margin-top: 78px;
	}

	.ouchi-strength-card {
		border-radius: 24px;
	}

	.ouchi-strength-card__number {
		background: var(--ouchi-pink);
	}

	.ouchi-strength-card h3 {
		color: #f25858;
	}

	.ouchi-flow {
		padding-top: 99px;
		background: linear-gradient(180deg, rgba(217, 217, 217, 0) 0 44.03%, rgba(221, 255, 254, .8) 100%), #fff;
	}

	.ouchi-flow .ouchi-heading-dots {
		margin-top: 8px;
	}

	.ouchi-flow__diagram {
		display: none !important;
		width: 846px;
		height: 524px;
		margin: 56px auto 0;
	}

	.ouchi-flow__list {
		display: none;
	}

	.ouchi-faq {
		padding-top: 99px;
	}

	.ouchi-faq .ouchi-heading-dots {
		margin-top: 18px;
	}

	.ouchi-faq__list {
		margin-top: 56px;
	}

	.ouchi-faq__item {
		margin-bottom: 16px;
		border-bottom: 0;
	}

	.ouchi-faq__item:last-child {
		margin-bottom: 0;
	}

	.ouchi-faq__question {
		grid-template-columns: 36px 1fr 20px;
		min-height: 68px;
		padding: 8px 24px;
		font-weight: 500;
	}

	.ouchi-faq__answer {
		height: 90px;
		grid-template-columns: 36px 1fr;
		padding: 27px 24px;
		font-size: 17px;
	}

	.ouchi-faq__answer p {
		padding-top: 0;
	}

	.ouchi-shape--faq-1 {
		top: -58px;
		left: 151px;
		width: 217px;
		height: 204px;
	}

	.ouchi-shape--faq-2 {
		top: 91px;
		right: auto;
		left: 1149px;
		width: 199px;
		height: 196px;
	}

	.ouchi-shape--faq-3,
	.ouchi-shape--faq-4,
	.ouchi-shape--faq-5,
	.ouchi-shape--faq-6 {
		display: block;
	}

	.ouchi-shape--faq-3 {
		top: 509px;
		left: 1261px;
		width: 223px;
		height: 237px;
		border-radius: 57% 43% 54% 46%;
		background: #c3e5ee;
		transform: rotate(18deg);
	}

	.ouchi-shape--faq-4 {
		top: 918px;
		left: 20px;
		width: 209px;
		height: 201px;
		border-radius: 53% 47% 61% 39%;
		background: var(--ouchi-light-purple);
		transform: rotate(18deg);
	}

	.ouchi-shape--faq-5 {
		top: 385px;
		left: -55px;
		width: 235px;
		height: 220px;
		border-radius: 58% 42% 55% 45%;
		background: var(--ouchi-light-pink);
		transform: rotate(18deg);
	}

	.ouchi-shape--faq-6 {
		top: 962px;
		left: 1239px;
		width: 219px;
		height: 206px;
		border-radius: 58% 42% 55% 45%;
		background: var(--ouchi-beige);
		transform: rotate(18deg);
	}
}

@media screen and (min-width: 768px) {
	.ouchi-shop {
		padding: 80px 0 100px;
		background: linear-gradient(180deg, rgba(217, 217, 217, 0) 0 44.03%, #ffe7e6 100%), #fff;
	}

	.ouchi-shop__panel {
		width: 1080px;
		height: 781px;
		min-height: 781px;
		padding: 0;
		border-radius: 56px;
		background: var(--ouchi-beige);
	}

	.ouchi-shop__heading-row {
		display: block;
		position: absolute;
		inset: 0;
	}

	.ouchi-shop__heading-row > .ouchi-section-heading {
		position: absolute;
		top: 51px;
		left: 0;
		width: 100%;
	}

	.ouchi-shop__heading-row .ouchi-heading-dots {
		margin-top: 19px;
	}

	.ouchi-shop__mascots {
		display: block;
		position: absolute;
		height: 190px;
	}

	.ouchi-shop__mascots img {
		position: absolute;
		max-width: none;
		margin: 0;
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:first-child {
		top: -2px;
		left: 102px;
		width: 240px;
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:first-child img:first-child {
		top: 0;
		left: 0;
		width: 164px;
		transform: rotate(-8.67deg);
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:first-child img:last-child {
		top: 48px;
		left: 122px;
		width: 115px;
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:last-child {
		top: 0;
		left: 741px;
		width: 212px;
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:last-child img:first-child {
		top: 50px;
		left: 0;
		width: 103px;
	}

	.ouchi-shop__heading-row > .ouchi-shop__mascots:last-child img:last-child {
		top: 28px;
		left: 100px;
		width: 112px;
		transform: rotate(8.129deg);
		transform-origin: left top;
	}

	.ouchi-shop__content {
		display: grid;
		grid-template-columns: 406px 400px;
		gap: 36px;
		position: absolute;
		top: 214px;
		left: 80px;
		width: 920px;
		height: 511px;
		margin-top: 0;
		padding: 40px 39px 91px;
		border-radius: 40px;
	}

	.ouchi-shop__details > div {
		grid-template-columns: 120px 1fr;
		gap: 16px;
		min-height: 59px;
		padding: 0;
	}

	.ouchi-shop__details > div:nth-child(2),
	.ouchi-shop__details > div:nth-child(5) {
		min-height: 71.5px;
	}

	.ouchi-shop__details dt {
		padding: 4px 8px;
		font-size: 15px;
	}

	.ouchi-shop__details dd {
		font-size: 16px;
	}

	.ouchi-shop__photo {
		width: 400px;
		height: 380px;
		border-radius: 24px;
	}

	.ouchi-shop__photo img {
		width: 100%;
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
	}

	.ouchi-contact {
		padding-top: 99px;
	}

	.ouchi-contact .ouchi-heading-dots {
		margin-top: 14px;
	}

	.ouchi-form {
		padding-right: 140px;
		padding-left: 140px;
		border-radius: 32px;
		background: #fff5f5;
	}

	.ouchi-form__field label {
		font-size: 16px;
		font-weight: 500;
	}

	.ouchi-required {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 16px;
		padding: 0;
		background: #f25858;
		font-size: 10px;
		line-height: 1;
	}

	.ouchi-form__privacy {
		gap: 18px;
	}

	.ouchi-form__privacy input {
		width: 14px;
		height: 14px;
	}

	.ouchi-footer {
		padding: 0;
		background: #f4f4f4;
	}

	.ouchi-footer__inner {
		display: block;
		width: 920px;
		height: 170px;
	}

	.ouchi-footer__credit {
		position: absolute;
		top: 36px;
		left: 0;
		width: 244px;
		height: 80px;
	}

	.ouchi-footer__links {
		display: flex;
		position: absolute;
		top: 51px;
		left: 302px;
		width: 610px;
		column-gap: 42px;
		row-gap: 11px;
		font-size: 15px;
		line-height: 21px;
	}

	.ouchi-footer__links li:first-child span {
		color: var(--ouchi-pink);
	}

	.ouchi-footer__copy {
		position: absolute;
		top: 134px;
		left: 0;
		width: 100%;
		font-size: 14px;
		line-height: 20px;
	}
}

@media screen and (min-width: 768px) {
	.ouchi-brand {
		transform: none;
	}

	.ouchi-fv__copy {
		top: 128px;
	}

	.ouchi-fv__title {
		width: 1120px;
		font-size: 51px;
		line-height: 82px;
	}

	.ouchi-fv__lead {
		top: 176px;
	}

	.ouchi-benefits {
		top: 378px;
	}

	.ouchi-button--wide {
		top: 574px;
	}

	.ouchi-fv__shop img {
		position: absolute;
		top: -296px;
		left: -165px;
		width: 1217px;
		height: 914px;
		max-width: none;
		object-fit: fill;
	}

	.ouchi-problems .ouchi-section-heading h2 {
		margin-top: 1px;
	}

	.ouchi-problems .ouchi-heading-dots {
		margin-top: 31px;
	}

	.ouchi-problems__body {
		margin-top: 38px;
	}

	.ouchi-problems__list {
		row-gap: 38px;
	}

	.ouchi-problems__list li {
		font-weight: 500;
	}

	.ouchi-problems__list em {
		color: #f25858;
	}

	.ouchi-problems__people {
		margin-top: 51px;
	}

	.ouchi-strengths__message {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 127px;
		min-height: 127px;
	}

	.ouchi-strengths__message strong {
		white-space: nowrap;
	}

	.ouchi-strengths__message-art--left {
		top: 0;
		left: 14px;
	}

	.ouchi-strengths__message-art--right {
		top: 0;
		left: 870px;
	}

	.ouchi-flow .ouchi-heading-dots {
		margin-top: 12px;
	}

	.ouchi-faq .ouchi-heading-dots {
		margin-top: 24px;
	}

	.ouchi-contact .ouchi-heading-dots {
		margin-top: 18px;
	}

	.ouchi-shop__content {
		padding: 40px 39px;
	}

	.ouchi-shop__details {
		display: grid;
		grid-template-rows: 71.5px 71.5px 59px 71.5px 71.5px 59px 27px;
		height: 431px;
	}

	.ouchi-shop__details > div,
	.ouchi-shop__details > div:nth-child(2),
	.ouchi-shop__details > div:nth-child(5) {
		min-height: 0;
		align-items: start;
	}

	.ouchi-shop__photo {
		position: relative;
	}

	.ouchi-shop__photo img {
		position: absolute;
		top: -200px;
		left: -120px;
		width: 871.596px;
		height: 654.572px;
		max-width: none;
		object-fit: fill;
	}

	.ouchi-footer__links {
		display: block;
		top: 51px;
		width: 610px;
		height: 52px;
		font-size: 15px;
		line-height: 21px;
	}

	.ouchi-footer__links li {
		position: absolute;
		top: 0;
		left: 0;
		white-space: nowrap;
	}

	.ouchi-footer__links li:nth-child(2) { left: 101px; }
	.ouchi-footer__links li:nth-child(3) { left: 201px; }
	.ouchi-footer__links li:nth-child(4) { left: 286px; }
	.ouchi-footer__links li:nth-child(5) { left: 489px; }
	.ouchi-footer__links li:nth-child(6) { top: 32px; left: -1px; }
	.ouchi-footer__links li:nth-child(7) { top: 32px; left: 236px; }

	.ouchi-footer__links span[data-todo-link] {
		color: var(--ouchi-text);
	}

	.ouchi-footer__copy {
		top: 134px;
		left: 376px;
		width: auto;
		font-size: 14px;
		line-height: 20px;
		text-align: left;
	}
}

@media screen and (max-width: 767px) {
	.ouchi-shop {
		height: 987px;
		min-height: 987px;
		overflow: hidden;
	}

	.ouchi-contact {
		min-height: 1354px;
	}
}

@media screen and (min-width: 768px) {
	.ouchi-section-heading__en {
		height: 22px;
		font-size: 16px;
		letter-spacing: .18em;
		line-height: 22px;
	}

	.ouchi-button--wide {
		margin-left: 0;
	}

	.ouchi-benefit--blue { background: var(--ouchi-light-blue); }
	.ouchi-benefit--orange { background: var(--ouchi-beige); }
	.ouchi-benefit--pink { background: var(--ouchi-light-pink); }
	.ouchi-benefit--purple { background: var(--ouchi-light-purple); }
	.ouchi-benefit--blue span { background: var(--ouchi-sky); color: #fff; }
	.ouchi-benefit--orange span { background: var(--ouchi-light-orange); color: #fff; }
	.ouchi-benefit--pink span { background: var(--ouchi-pink); color: #fff; }
	.ouchi-benefit--purple span { background: var(--ouchi-purple); color: #fff; }

	.ouchi-strengths > .ouchi-container > .ouchi-section-heading .ouchi-heading-dots {
		margin-top: 15px;
	}

	.ouchi-faq {
		overflow: hidden;
	}

	.ouchi-faq__question {
		border-radius: 0;
	}

	.ouchi-shop__heading-row .ouchi-heading-dots {
		margin-top: 26px;
	}

	.ouchi-shop__photo {
		align-self: start;
	}

	.ouchi-strengths {
		background: linear-gradient(
			180deg,
			#fff 0 24.36%,
			#fffefd 31.924%,
			#fffefd 39.488%,
			#fffdfa 47.052%,
			#fffcf6 54.616%,
			#fffaf1 62.18%,
			#fff8ea 69.744%,
			#fff5e3 77.308%,
			#fff2da 84.872%,
			#ffefd0 92.436%,
			#ffebc5 100%
		);
	}

	.ouchi-shop__heading-row > .ouchi-section-heading h2 {
		margin-top: 7px;
	}

	.ouchi-shop__heading-row .ouchi-heading-dots {
		margin-top: 33px;
	}
}

}

/* 2026-10-02: final PC fidelity corrections from Figma source geometry. */
@media screen and (min-width: 768px) {
	/* The 140px Figma circle starts 8px below the icon/group origin. */
	.ouchi-benefit {
		height: 148px;
		padding-top: 56px;
	}

	/* Figma applies the exported decoration node with a horizontal reflection. */
	.ouchi-problems__list li::after {
		transform: scaleX(-1);
		transform-origin: center;
	}

	/* Figma: rotate(168.08deg) with a vertical reflection. */
	.ouchi-strengths__message-art--left .ouchi-strengths__message-mascot {
		transform: rotate(168.08deg) scaleY(-1);
		transform-origin: center;
	}

	/* Figma typography: Jost SemiBold 600, POINT 22px / number 36px. */
	.ouchi-strength-card__number strong {
		font-size: 36px;
		font-weight: 600;
	}

	/* Figma rows vertically center both the orange label and value block. */
	.ouchi-shop__details > div,
	.ouchi-shop__details > div:nth-child(2),
	.ouchi-shop__details > div:nth-child(5) {
		align-items: center;
	}
}
