/* Mobile presentation of index.html; the facility breakpoint is 768px. */
.mobile-view { display: none; }
@media (max-width: 768px) {
.desktop-view { display: none; }
.mobile-view { display: block; }

		/* ===== RESET & BASE ===== */
		*, *::before, *::after { box-sizing: border-box; }

		:root {
			--page-bg: #FAF7EE;
			--paper: #FAF7EE;
			--ink: #3f3a2f;
			--muted: #6c6557;
			--line: #ddd7ca;
			--green: #1f8a50;
			--shadow: 0 8px 24px rgba(64, 53, 30, 0.10);
			--radius: 16px;
			--sp-pad: 20px;
		}

		html, body {
			margin: 0;
			padding: 0;
			background: var(--page-bg);
			color: var(--ink);
			font-family: "Zen Kaku Gothic New", sans-serif;
			line-height: 1.7;
			font-size: 17px;
			scroll-behavior: smooth;
		}

		img {
			display: block;
			max-width: 100%;
			height: auto;
		}

		a {
			color: inherit;
			text-decoration: none;
		}

		/* ===== PAGE WRAPPER ===== */
		.mobile-view .page {
			width: 100%;
			max-width: none;
			margin: 0 auto;
			background: var(--paper);
			min-height: 100vh;
			overflow-x: hidden;
			position: relative;
		}

		html { scroll-padding-top: 84px; }
		/* ===== MOBILE HEADER & MENU ===== */
		.sp-header { position: fixed; top: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: none; height: 68px; padding: 6px 12px; z-index: 100; background: transparent; transition: background 0.2s ease; }
		.sp-header.is-scrolled { background: rgba(255,255,255,0.96); }
		.sp-header-inner, .sp-menu-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 100%; }
		.sp-logo { display: inline-flex; align-items: flex-end; gap: 8px; min-width: 0; }
		.sp-logo img { width: clamp(96px, calc(100vw - 232px), 144px); height: auto; flex-shrink: 0; }
		.sp-logo-audience { color: #2e896b; font-family: "Zen Maru Gothic", sans-serif; font-size: 14px; margin-bottom: 6px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
		.sp-hamburger, .sp-menu-close { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 40px; height: 52px; flex-shrink: 0; padding: 0; border: 0; background: transparent; color: #5d5232; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
		.sp-menu-label { white-space: nowrap; font-size: 10px; font-weight: 500; line-height: 1; letter-spacing: 0.06em; }
		.sp-menu-symbol { position: relative; display: block; width: 26px; height: 26px; }
		.sp-hamburger .sp-menu-symbol { background: linear-gradient(currentColor,currentColor) center 2px / 26px 2px no-repeat, linear-gradient(currentColor,currentColor) center 12px / 26px 2px no-repeat, linear-gradient(currentColor,currentColor) center 22px / 26px 2px no-repeat; }
		.sp-menu-close .sp-menu-symbol::before, .sp-menu-close .sp-menu-symbol::after { position: absolute; left: 0; top: 12px; width: 26px; height: 2px; background: currentColor; content: ""; }
		.sp-menu-close .sp-menu-symbol::before { transform: rotate(45deg); }
		.sp-menu-close .sp-menu-symbol::after { transform: rotate(-45deg); }
		.sp-menu-overlay { position: fixed; inset: 0; z-index: 150; visibility: hidden; pointer-events: none; }
		.sp-menu-overlay.is-open { visibility: visible; pointer-events: auto; }
		.sp-menu-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.4); }
		.sp-menu-panel { position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: none; background: var(--paper); overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; }
		.sp-menu-header { position: sticky; top: 0; z-index: 2; background: var(--paper); height: 68px; min-height: 68px; flex-shrink: 0; padding: 6px 12px; }
		.sp-menu-header .sp-logo { align-items: flex-end; gap: 8px; }
		.sp-menu-header .sp-logo img { width: clamp(96px, calc(100vw - 232px), 120px); }
		.sp-menu-header .sp-logo-audience { margin-bottom: 6px; font-size: 14px; }
		.sp-menu-nav { padding: 48px 20px 48px; display: flex; flex-direction: column; flex-shrink: 0; }
		.sp-menu-nav a { display: flex; align-items: center; justify-content: center; min-height: 62px; font-size: 16px; font-weight: 400; color: #5d5232; text-align: center; }
		.sp-menu-nav a:hover { color: #2e896b; }
		.sp-menu-cta { position: relative; width: 100%; margin-top: auto; padding-top: 64px; flex-shrink: 0; }
		.sp-menu-mascot { position: absolute; left: 16px; bottom: 124px; width: 48px; height: 64px; object-fit: cover; object-position: center top; }
		.sp-menu-cta a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 62px; padding: 12px; color: #fff; font-size: clamp(12px,3.7vw,14px); font-weight: 700; line-height: 1.5; }
		.sp-menu-gov { background: #2e896b; }
		.sp-menu-facility { background: #ff9327; }
		.sp-menu-cta svg { width: 16px; height: 16px; flex-shrink: 0; }
		.sp-hamburger:focus-visible, .sp-menu-close:focus-visible, .sp-menu-nav a:focus-visible { outline: 2px solid #2e896b; outline-offset: 3px; }

		/* ===== SECTIONS ===== */
		.sp-section {
			width: 100%;
			padding: 30px var(--sp-pad);
		}

		.sp-section + .sp-section {
			padding-top: 0;
		}

		/* ===== MOBILE HERO ===== */
		.sp-hero { position: relative; padding: 0; }
		.sp-hero-frame { position: relative; width: 100%; height: 90svh; min-height: 560px; max-height: 840px; overflow: hidden; background: #f4ecdc; }
		.sp-hero-frame video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
		.sp-hero-overlay { position: absolute; inset: 0; pointer-events: none; }
		.sp-hero-copy { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); }
		.sp-hero-slogan { margin: 0; color: #5d5232; writing-mode: vertical-rl; text-orientation: upright; font-family: "Zen Kaku Gothic New", sans-serif; font-size: clamp(32px,10.66vw,40px); font-weight: 500; line-height: 1.5; letter-spacing: 0.15em; white-space: nowrap; -webkit-text-stroke: 5px #fff; paint-order: stroke fill; }
		.sp-hero-cta { padding: 50px 20px 48px; }
		.sp-trial-button { position: relative; display: flex; align-items: center; width: fit-content; max-width: 100%; min-height: 64px; margin: 0 auto; padding: 12px 32px 16px 76px; border-radius: 999px; background: #a8dcc9; box-shadow: 0 6px 0 #55756e; color: #304b49; }
		.sp-trial-mascot { position: absolute; left: 24px; bottom: -7px; width: 40px; height: auto; }
		.sp-trial-text { font-size: 20px; font-weight: 500; line-height: 1.4; white-space: nowrap; }
		.sp-trial-text ruby { ruby-align: start; }
		.sp-trial-text rt { font-size: 11px; font-weight: 400; }
		@media (prefers-reduced-motion: reduce) { html,body { scroll-behavior: auto; } .sp-header { transition: none; } }

/* Native mobile content; only photographs and illustrations are images. */
.mobile-view main { background: url('../img/mobile/background.svg') center top / 100% auto repeat-y; color: #354340; }
.mobile-view h2, .mobile-view h3, .mobile-view h4, .mobile-view p, .mobile-view figure { margin: 0; }
.mobile-view ruby { ruby-align: center; }
.mobile-view rt { font-size: 0.48em; font-weight: 400; }
.m-section { padding: 88px 20px 0; }
.m-function-heading, .m-about-title, .m-senmonka-title-large, .m-flow-title, .m-price-info-title, .m-faq-title { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 48px !important; color: #5d5232; font-size: 28px; font-weight: 500; line-height: 1.3; text-align: center; }
.m-function-heading-icon, .m-about-title-icon, .m-senmonka-title-icon, .m-price-title-document, .m-price-title-pig, .m-faq-title-icon { width: 36px; height: auto; flex-shrink: 0; }
.m-function-section { padding-top: 80px; padding-bottom: 80px; }
.m-function-heading { position: relative; display: block; font-size: 32px; line-height: 1.3; letter-spacing: 0.04em; }
.m-function-heading span { display: block; max-width: none; white-space: nowrap; transform: translateX(6px); }
.m-function-heading-icon { position: absolute; top: 10px; left: calc(50% - 152px); width: 80px; max-width: none; height: auto; }
.m-function-heading-icon--screen { top: 38px; left: auto; right: calc(50% - 157px); width: 56px; margin: 0; }
.m-senmonka-title-medium, .m-program-title-text, .m-kpi-title, .m-testimonials-title, .m-contact-title { position: relative; display: block; padding-inline: 40px; margin-bottom: 40px !important; color: #2e896b; font-size: 24px; font-weight: 500; line-height: 1.35; text-align: center; }
.m-senmonka-title-medium::before, .m-senmonka-title-medium::after, .m-program-title-text::before, .m-program-title-text::after, .m-kpi-title::before, .m-kpi-title::after, .m-testimonials-title::before, .m-testimonials-title::after, .m-contact-title::before, .m-contact-title::after { content: ''; position: absolute; top: 50%; width: 32px; height: 3px; transform: translateY(-50%); border-radius: 3px; background: #a8dcc9; }
.m-senmonka-title-medium::before, .m-program-title-text::before, .m-kpi-title::before, .m-testimonials-title::before, .m-contact-title::before { left: 0; }
.m-senmonka-title-medium::after, .m-program-title-text::after, .m-kpi-title::after, .m-testimonials-title::after, .m-contact-title::after { right: 0; }
.m-solution-section { padding: 0; }
.m-hero-nayami { padding: 80px 16px 88px; background: url('../img/mobile/concerns-background.svg') center / 100% 100% no-repeat; }
.m-concerns-title { color: #5d5232; font-size: 24px; font-weight: 500; line-height: 1.6; letter-spacing: 0.08em; text-align: center; margin-bottom: 32px !important; }
.m-concerns-title span { position: relative; display: inline-block; isolation: isolate; white-space: nowrap; }
.m-concerns-title span::after { content: ''; position: absolute; z-index: -1; left: 0; right: 0; bottom: 0.16em; height: 0.45em; border-radius: 999px; background: #ffda91; }
.m-concerns-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 12px; margin: 0; padding: 0; list-style: none; }
.m-concern { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; }
.m-concern-wish { position: relative; display: grid; place-items: center; width: fit-content; max-width: 100%; min-height: 68px; margin-bottom: 6px !important; padding: 12px 10px; border-radius: 48px; background: #fff; color: #5d5232; font-size: 16px; font-weight: 500; line-height: 1.5; text-align: center; }
.m-concern-wish::after { content: ''; position: absolute; left: 45%; bottom: -9px; width: 16px; height: 12px; background: #fff; clip-path: polygon(0 0,100% 0,30% 100%); }
.m-concern-illustration { width: auto; height: 152px; max-width: 100%; object-fit: contain; }
.m-concern:nth-child(n+3) .m-concern-illustration { height: 106px; }
.m-concern-label { color: #2e896b; font-size: 18px; font-weight: 700; line-height: 1.35; text-align: center; }
.m-hero-kaiketsu { padding: 56px 20px 80px; }
.m-solution-heading { position: relative; width: 100%; max-width: 330px; margin: 0 auto 20px !important; color: #5d5232; font-family: 'Zen Maru Gothic',sans-serif; font-size: 26px; font-weight: 500; text-align: center; }
.m-solution-intro { display: block; }
.m-solution-prefix { display: block; width: fit-content; margin-left: 0; font-size: 16px; transform: rotate(-6deg); transform-origin: left center; }
.m-solution-brand-line { display: block; margin-top: -6px; font-family: "Zen Kaku Gothic New", sans-serif; }
.m-solution-brand { color: #2e896b; font-size: 48px; }
.m-solution-brand rt { font-size: 16px; }
.m-solution-heart { position: relative; display: grid; place-items: center; width: 244px; height: 184px; margin: 0 auto; color: #fff; font-size: 48px; font-weight: 700; line-height: 1.1; }
.m-solution-heart svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(12deg); }
.m-solution-heart span { position: relative; }
.m-solution-suffix { display: block; margin-top: 0; font-family: "Zen Kaku Gothic New", sans-serif; line-height: 1.4; }
.m-solution-mascot { position: absolute; z-index: 0; width: 68px; right: 0; bottom: -38px; }
.m-solution-description { position: relative; z-index: 1; border: 12px solid transparent; border-image: linear-gradient(110deg, #fff1eb, #def6f4) 1; background: #fff; padding: 24px 20px; color: #5d5232; font-size: 20px; line-height: 2; text-align: center; }
.m-dekirukoto-cards { display: grid; gap: 64px; }
.m-function-visual { background: #fff; padding: 18px; }
.m-function-visual img { width: 100%; }
.m-function-copy { position: relative; margin-top: 24px; }
.m-function-card-title { position: relative; display: block; padding-left: 80px; color: #5d5232; font-size: 20px; font-weight: 500; line-height: 1.6; }
.m-function-card-title strong { display: block; margin-top: 4px; color: #2e896b; font-weight: 500; }
.m-function-mascot { position: absolute; z-index: 2; left: 16px; bottom: -32px; width: 48px; height: auto; }
.m-function-description { position: relative; margin-top: 18px; background: #fff; padding: 24px 20px; border-radius: 28px; font-size: 16px; font-weight: 500; line-height: 1.9; }
.m-function-description::before { content: ''; position: absolute; left: 84px; top: -14px; width: 20px; height: 16px; background: #fff; clip-path: polygon(0 0,100% 100%,0 100%); }
.m-function-card--reverse .m-function-card-title { padding-left: 0; padding-right: 80px; text-align: center; }
.m-function-card--reverse .m-function-card-title strong { display: inline; margin-top: 0; }
.m-function-card--reverse .m-function-mascot { left: auto; right: 16px; }
.m-function-card--reverse .m-function-description::before { left: auto; right: 84px; transform: scaleX(-1); }
.m-introduction-section { padding-top: 80px; padding-bottom: 80px; }
.m-about-title { font-size: 32px; }
.m-about-title-icon { width: 40px; }
.m-panel h2 { color: #2e896b; font-size: 24px; font-weight: 500; line-height: 1.85; text-align: center; }
.m-about-copy-row > p { margin-top: 40px; color: #5d5232; font-size: 16px; line-height: 1.7; text-align: center; }
.m-about-frame-wrap { width: 200px; margin: 8px 0 64px auto; }
.m-about-frame-wrap a { display: block; position: relative; }
.m-about-frame { width: 100%; }
.m-about-cards { display: grid; gap: 24px; }
.m-about-cards .m-card { background: #fff; }
.m-about-cards .m-card > img { width: 100%; }
.m-about-cards .m-card:nth-child(1) > img { background: #fdf1eb; }
.m-about-cards .m-card:nth-child(2) > img { background: #fff5dc; }
.m-about-cards .m-card:nth-child(3) > img { background: #f1f6ed; }
.m-card-body { padding: 16px; }
.m-card-title { color: #2e896b; font-size: 20px; font-weight: 500; line-height: 1.5; margin-bottom: 12px !important; }
.m-card-text { font-size: 16px; line-height: 1.8; }
.m-why-brainco-section { padding-inline: 16px; }
.m-senmonka-title-large span { max-width: 215px; }
.m-senmonka-cards { display: grid; gap: 24px; }
.m-senmonka-card { background: #fff; border-radius: 16px; padding: 20px 16px; }
.m-senmonka-photo { width: 72px; height: 72px; object-fit: cover; object-position: center 18%; border-radius: 50%; margin: 0 auto 16px; }
.m-senmonka-name { color: #5d5232; font-size: 20px; font-weight: 500; line-height: 1.7; }
.m-senmonka-specialty { color: #2e896b; font-size: 18px; font-weight: 500; }
.m-senmonka-copy { margin-top: 16px !important; padding-top: 16px; border-top: 1px solid #ddd; font-size: 16px; font-weight: 500; line-height: 1.85; }
.m-program-block { margin-top: 88px; }
.m-program-carousel { position: relative; margin-inline: -16px; }
.m-program-viewport { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.m-program-viewport::-webkit-scrollbar { display: none; }
.m-program-track { display: flex; align-items: stretch; gap: 16px; }
.m-program-track::before, .m-program-track::after { content: ""; flex: 0 0 16px; }
.m-program-card { flex: 0 0 calc(100% - 64px); min-width: 0; position: relative; scroll-snap-align: center; padding: 14px 14px 28px; border-radius: 16px; background: #fff; }
.m-program-visual { position: relative; padding-top: 4px; }
.m-program-label { position: absolute; z-index: 1; left: -4px; top: -14px; max-width: calc(100% - 16px); padding: 4px 10px; border-radius: 0 0 16px 0; background: #fff; color: #2e896b; font-size: 20px; font-weight: 500; letter-spacing: .08em; line-height: 1.5; }
.m-program-thumbnail { width: 100%; margin: 0; border-radius: 16px; }
.m-program-description { padding-right: 84px; font-size: 14px; font-weight: 500; line-height: 1.8; margin-top: 20px !important; }
.m-program-instructor { position: absolute; right: 0; top: calc(100% - 16px); width: 80px; text-align: center; color: #5d5232; font-size: 12px; line-height: 1.3; }
.m-program-portrait { width: 80px; height: 80px; margin: 0 auto; border-radius: 50%; object-fit: cover; border: 4px solid #fff; }
.m-program-instructor figcaption { margin-top: 4px; }
.m-program-instructor figcaption span, .m-program-instructor figcaption strong { display: block; }
.m-program-instructor figcaption span, .m-program-instructor figcaption strong { font-weight: 700; }
.m-program-nav { position: absolute; z-index: 3; top: var(--program-nav-top, 148px); display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%; background: rgba(241,246,243,.94); box-shadow: 0 4px 12px #35594c15; color: #2e896b; cursor: pointer; }
.m-program-nav::before { content: ''; width: 9px; height: 9px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); margin-left: -4px; }
.m-program-nav.m-next { right: 4px; }
.m-program-nav.m-prev { left: 4px; }
.m-program-nav.m-prev::before { transform: rotate(-135deg); margin-left: 4px; }
.m-program-nav.is-hidden { visibility: hidden; pointer-events: none; }
.m-program-nav:focus-visible { outline: 2px solid #2e896b; outline-offset: 3px; }
.m-kpi-block { margin-top: 88px; }
.m-kpi-title { font-size: 23px; }
.m-kpi-outcomes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.m-kpi-stat { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; min-height: 184px; border-radius: 18px; text-align: center; }
.m-kpi-stat--connection { grid-column: 1/-1; min-height: 148px; }
.m-kpi-stat--yellow { background: #ffe9bd; }
.m-kpi-stat--pink { background: #f7cce3; }
.m-kpi-stat--green { background: #a8dcc9; }
.m-kpi-stat-label { position: relative; z-index: 1; color: #ff6d00; font-size: 18px; font-weight: 500; line-height: 1.4; margin-bottom: 14px !important; }
.m-kpi-stat--pink .m-kpi-stat-label { color: #ff4567; }
.m-kpi-stat--green .m-kpi-stat-label { color: #2e896b; }
.m-kpi-stat-value { position: relative; z-index: 1; color: #5d5232; font-size: clamp(52px,17vw,72px); font-weight: 700; line-height: 1.1; letter-spacing: -0.06em; }
.m-kpi-stat-value small { font-size: 26px; font-weight: 400; letter-spacing: 0; }
.m-kpi-stat-decoration { position: absolute; left: 16px; bottom: 0; width: 88px; height: auto; }
.m-kpi-stat-decoration--small { left: 6px; width: 40px; }
.m-kpi-stat-decoration--chair { left: 4px; width: 42px; }
.m-kpi-study-note { padding: 12px 0; color: #5d5232; font-size: 14px; text-align: right; line-height: 1.5; }
.m-kpi-reach { display: grid; gap: 16px; }
.m-kpi-reach .m-kpi-stat:first-child { min-height: 184px; }
.m-kpi-reach .m-kpi-stat:last-child { min-height: 150px; }
.m-kpi-map { position: absolute; right: 4px; top: 12px; width: 190px; }
.m-kpi-locations { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; width: 100%; padding: 0 12px; }
.m-kpi-location-label { display: block; font-size: clamp(24px,7.5vw,32px); font-weight: 700; letter-spacing: 0; line-height: 1.1; }
.m-kpi-stat-decoration--participants { left: 0; width: 100%; }
.m-kpi-notes { margin-top: 8px; text-align: right; font-size: 13px; color: #5d5232; }
.m-kpi-slider-section { margin: 80px -16px 0; padding: 0; }
.m-kpi-slider { overflow: hidden; }
.m-kpi-slider-track { display: flex; width: max-content; animation: m-marquee 48s linear infinite; }
.m-kpi-slider-group { display: flex; gap: 20px; padding-right: 20px; }
.m-kpi-slide { width: 340px; flex: 0 0 340px; }
.m-kpi-slide img { width: 100%; }
@keyframes m-marquee { to { transform: translateX(-50%); } }
.m-testimonials-section { padding: 88px 0 0; }
.m-testimonials-grid { display: grid; gap: 24px; }
.m-testimonial-card { border-radius: 18px; background: #fff; overflow: hidden; }
.m-testimonial-heading { position: relative; background: #cbefe2; padding: 16px; color: #5d5232; font-size: 19px; font-weight: 500; line-height: 1.7; }
.m-testimonial-heading::after { position: absolute; left: 32%; bottom: -10px; width: 20px; height: 12px; content: ''; background: #cbefe2; clip-path: polygon(0 0,100% 0,0 100%); }
.m-testimonial-body { display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 12px; padding: 24px 16px; }
.m-testimonial-photo { width: 76px; height: 76px; border-radius: 50%; }
.m-testimonial-person { color: #5d5232; font-size: 13px; line-height: 1.5; border-bottom: 1px solid #ddd; padding-bottom: 12px; }
.m-testimonial-comment { font-size: 15px; line-height: 1.8; margin-top: 12px !important; }
.m-interview-cta, .m-flow-button, .m-qa-button { display: flex; justify-content: center; margin-top: 48px; }
.m-interview-button, .m-flow-video-button, .m-faq-video-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; background: #ff9327; color: #fff; padding: 12px 24px; font-size: 15px; font-weight: 700; line-height: 1.5; }
.m-video-button-icon { width: 16px; height: 16px; flex-shrink: 0; }
.m-flow-section { padding-top: 136px; }
.m-flow-title { font-size: 28px; white-space: nowrap; gap: 0; }
.m-flow-intro { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-bottom: 48px; }
.m-flow-mascot { width: 72px; }
.m-flow-intro-copy { position: relative; display: flex; align-items: center; justify-content: center; gap: 4px; width: 100%; padding: 6px 10px; border-radius: 999px; background: #fff; color: #5d5232; font-family: 'Zen Maru Gothic',sans-serif; font-size: 16px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.m-flow-intro-copy::before { position: absolute; content: ''; width: 18px; height: 14px; top: -12px; left: 50%; background: #fff; clip-path: polygon(0 100%,50% 0,100% 100%); }
.m-flow-intro-copy em { color: #2e896b; font-size: 20px; font-style: normal; }
.m-flow-three { position: relative; margin-top: -10px; color: #ffda4d; font-size: 64px; font-weight: 700; line-height: 1; -webkit-text-stroke: 1px #2e896b; }
.m-flow-three-rays { position: absolute; right: -12px; top: -12px; width: 24px; height: 24px; }
.m-flow-steps { counter-reset: step; display: grid; gap: 32px; margin: 0; padding: 0 0 0 36px; list-style: none; }
.m-flow-step { position: relative; counter-increment: step; }
.m-flow-step::before { content: counter(step); position: absolute; left: -40px; top: 0; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #a8dcc9; color: #2e896b; font-family: 'Zen Maru Gothic',sans-serif; font-size: 36px; font-weight: 500; line-height: 1; letter-spacing: 0; padding: 0 0 6px; }
.m-flow-step:first-child::before { padding-left: 4px; }
.m-flow-step::after { content: ''; position: absolute; top: 48px; bottom: -32px; left: -17px; width: 2px; background: #a8dcc9; }
.m-flow-step:last-child::after { display: none; }
.m-flow-step-card { background: #fff; padding: 16px; }
.m-flow-step-title { color: #2e896b; font-size: 18px; font-weight: 500; line-height: 1.7; }
.m-flow-step-description { font-size: 15px; line-height: 1.7; margin-top: 12px !important; }
.m-flow-illustration { width: 100%; margin-top: 20px; background: #fdf1eb; }
.m-price-info-section { padding-top: 144px; }
.m-price-info-panel { border: 8px solid transparent; border-image: linear-gradient(110deg,#fdf1eb,#def7f4) 1; padding: 32px 16px; background: #fff; text-align: center; }
.m-price-info-free { color: #2e896b; font-size: 30px; font-weight: 700; line-height: 1.5; }
.m-price-info-note { color: #5d5232; font-size: 16px; line-height: 1.7; margin-top: 28px !important; }
.m-faq-section { padding-top: 152px; }
.m-faq-title { white-space: nowrap; font-size: 27px; gap: 12px; margin-bottom: 64px !important; }
.m-faq-title-icon { width: 44px; }
.m-qa { display: grid; gap: 28px; }
.m-qa-item { position: relative; background: #fff; padding: 20px 16px; border-radius: 8px; }
.m-qa-q, .m-qa-a { display: grid; grid-template-columns: 30px minmax(0,1fr); align-items: start; gap: 12px; }
.m-qa-q { font-size: 17px; font-weight: 700; color: #5d5232; line-height: 1.6; }
.m-qa-a { margin-top: 24px !important; font-size: 16px; line-height: 1.8; }
.m-qa-label { color: #2e896b; font-size: 24px; font-weight: 400; line-height: 1; width: 30px; height: 30px; display: grid; place-items: center; }
.m-qa-q .m-qa-label { border-radius: 50%; background: #a8dcc9; padding-bottom: 2px; }
.m-faq-mascot { position: absolute; z-index: 1; left: 0; top: -54px; width: 54px; height: auto; }
.sp-bg-section { padding: 80px 16px 0; }
.m-contact-title { font-size: 24px; margin-bottom: 40px !important; }
.sp-contact-form-object { width: 100%; padding: 32px 16px 64px; border-radius: 24px; background: #f6f9f8; }
.sp-contact-form { display: grid; gap: 28px; }
.sp-contact-field-label { display: flex; align-items: flex-start; gap: 6px; font-size: 14px; line-height: 1.5; color: #5d5232; font-weight: 500; margin-bottom: 8px; }
.sp-contact-field-label .required { flex-shrink: 0; color: #ff003b; font-size: 12px; white-space: nowrap; }
.sp-contact-field-label[for="mobile-sp-contact-message"] { justify-content: space-between; gap: 12px; }
.sp-contact-field-label[for="mobile-sp-contact-message"] .required { margin-left: auto; }
.sp-contact-textfield, .sp-contact-textarea { width: 100%; border: 1px solid #ccc; border-radius: 5px; background: #fff; padding: 12px; color: #354340; font: inherit; font-size: 16px; }
.sp-contact-textfield { height: 48px; }
.sp-contact-textarea { display: block; min-height: 110px; resize: vertical; }
.sp-contact-textfield::placeholder, .sp-contact-textarea::placeholder { color: #9aa0a0; }
.sp-contact-textfield:focus-visible, .sp-contact-textarea:focus-visible { outline: 2px solid #2e896b; outline-offset: 2px; }
.sp-contact-privacy { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px; margin-top: 20px; font-size: 16px; color: #354340; }
.sp-contact-privacy input { width: 16px; height: 16px; flex-shrink: 0; margin: 0 8px 0 0; accent-color: #2e896b; }
.sp-contact-privacy a { color: #2e896b; text-decoration: underline; text-underline-offset: 3px; }
.sp-contact-submit { text-align: center; }
.sp-contact-submit-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 136px; min-height: 46px; padding: 10px 24px; border: 0; border-radius: 999px; background: #ff9327; color: #fff; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }
.sp-contact-submit-btn:disabled { background: #c9cecc; cursor: not-allowed; }
.sp-contact-submit-btn.is-loading { background: #ff9327; cursor: wait; }
.sp-contact-submit-btn.is-loading::before { content: ''; width: 16px; height: 16px; border: 2px solid #ffffff66; border-top-color: #fff; border-radius: 50%; animation: sp-contact-spin .8s linear infinite; }
@keyframes sp-contact-spin { to { transform: rotate(360deg); } }
.m-footer { margin-top: 120px; padding: 40px 20px 72px; background: #fff; text-align: center; }
.m-footer-logo { width: 160px; height: 160px; margin: 0 auto 32px; }
.m-footer-links { display: flex; flex-direction: column; align-items: center; gap: 24px; color: #5d5232; font-size: 16px; font-weight: 500; }
.m-footer-links a { display: inline-flex; align-items: center; gap: 6px; }
.m-footer-link-icon { width: 12px; height: 12px; }
body.menu-open { overflow: hidden; }
@media (max-width: 350px) {
 .m-flow-title { font-size: 24px; }
 .m-about-title { gap: 4px; }
 .m-faq-title { font-size: 23px; gap: 8px; }
 .m-concern-wish { padding: 12px 8px; }
 .m-kpi-stat-value { font-size: 46px; }
 .m-kpi-location-label { font-size: 22px; }
 .m-qa-q, .m-qa-a { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
 .m-kpi-slider-track, .sp-contact-submit-btn.is-loading::before { animation: none; }
}

}
