@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ==========================================================================
   めーぷる富士 LP — 和のぬくもり × 洗練
   Aesthetic: Warm washi-paper texture, organic brush strokes,
   refined ryokan-brochure elegance. Trustworthy yet inviting.
   ========================================================================== */

/* ------------------------------------------
   Design Tokens
   ------------------------------------------ */
:root {
	/* Primary palette — deep forest & warm earth */
	--m-forest: #2D5A3D;
	--m-forest-light: #3D7A52;
	--m-forest-pale: #E8F0EB;
	--m-earth: #8B6914;
	--m-earth-warm: #C4956A;
	--m-earth-pale: #F7F0E6;

	/* Neutrals — warm grays */
	--m-ink: #2C2C2C;
	--m-text: #404040;
	--m-text-light: #6B6B6B;
	--m-text-muted: #9A9A9A;
	--m-line: #E2DDD5;
	--m-line-light: #F0EDE8;
	--m-bg: #FFFCF7;
	--m-white: #FFFFFF;

	/* Accent — sunset warmth for CTAs */
	--m-sunset: #D4734A;
	--m-sunset-hover: #BA5F3A;
	--m-sunset-glow: rgba(212, 115, 74, 0.12);

	/* Functional */
	--m-radius-sm: 6px;
	--m-radius: 12px;
	--m-radius-lg: 20px;
	--m-radius-xl: 32px;
	--m-shadow-sm: 0 1px 3px rgba(44, 44, 44, 0.04), 0 1px 2px rgba(44, 44, 44, 0.06);
	--m-shadow: 0 4px 20px rgba(44, 44, 44, 0.06), 0 1px 4px rgba(44, 44, 44, 0.04);
	--m-shadow-lg: 0 8px 40px rgba(44, 44, 44, 0.08), 0 2px 8px rgba(44, 44, 44, 0.04);
	--m-shadow-float: 0 16px 48px rgba(44, 44, 44, 0.1), 0 4px 12px rgba(44, 44, 44, 0.06);

	/* Typography scale */
	--m-fs-hero: clamp(1.75rem, 4vw, 2.5rem);
	--m-fs-h2: clamp(1.5rem, 3vw, 2rem);
	--m-fs-h3: clamp(1.125rem, 2vw, 1.375rem);
	--m-fs-body: clamp(0.9375rem, 1.2vw, 1.0625rem);
	--m-fs-small: clamp(0.8125rem, 1vw, 0.9375rem);

	/* Spacing scale */
	--m-space-xs: 0.5rem;
	--m-space-sm: 1rem;
	--m-space-md: 1.5rem;
	--m-space-lg: 2.5rem;
	--m-space-xl: 4rem;
	--m-space-2xl: 6rem;
	--m-space-section: clamp(4rem, 8vw, 7rem);
}

/* ------------------------------------------
   Washi Paper Background Texture
   ------------------------------------------ */
.lp-content {
	background-color: var(--m-bg);
	background-image:
		radial-gradient(ellipse at 20% 50%, rgba(232, 240, 235, 0.4) 0%, transparent 60%),
		radial-gradient(ellipse at 80% 20%, rgba(247, 240, 230, 0.5) 0%, transparent 50%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.018'/%3E%3C/svg%3E");
}

/* ------------------------------------------
   Base Typography
   ------------------------------------------ */
.lp-content {
	color: var(--m-text);
	font-family: "Zen Maru Gothic", "Hiragino Maru Gothic Pro", "BIZ UDGothic", "Yu Gothic", sans-serif;
	font-size: var(--m-fs-body);
	line-height: 2;
	font-weight: 400;
	letter-spacing: 0.02em;
	font-feature-settings: "palt" 1;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

/* ------------------------------------------
   Scroll Reveal Animations
   ------------------------------------------ */
.maple-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.maple-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Staggered children */
.maple-reveal-children > * {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.maple-reveal-children.is-visible > *:nth-child(1) { transition-delay: 0s; }
.maple-reveal-children.is-visible > *:nth-child(2) { transition-delay: 0.12s; }
.maple-reveal-children.is-visible > *:nth-child(3) { transition-delay: 0.24s; }
.maple-reveal-children.is-visible > *:nth-child(4) { transition-delay: 0.36s; }

.maple-reveal-children.is-visible > * {
	opacity: 1;
	transform: translateY(0);
}

/* ------------------------------------------
   Section Rhythm & Fullwide Overrides
   ------------------------------------------ */
.lp-content .swell-block-fullWide {
	padding-top: var(--m-space-section);
	padding-bottom: var(--m-space-section);
	position: relative;
}

.lp-content .swell-block-fullWide__inner[data-width="article"] {
	max-width: 960px;
	margin: 0 auto;
	padding-left: var(--m-space-md);
	padding-right: var(--m-space-md);
}

/* Paragraph spacing */
.lp-content p + p {
	margin-top: 1.25em;
}

/* ------------------------------------------
   SECTION: First View — ファーストビュー
   ------------------------------------------ */
.lp-content .maple-fv {
	background: linear-gradient(
		170deg,
		#F5F1EA 0%,
		#EDE8DF 30%,
		#E8F0EB 70%,
		#E2EDDF 100%
	) !important;
	min-height: 85vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}

/* Decorative organic shapes */
.lp-content .maple-fv::before {
	content: "";
	position: absolute;
	top: -15%;
	right: -10%;
	width: 50vw;
	height: 50vw;
	max-width: 600px;
	max-height: 600px;
	border-radius: 47% 53% 61% 39% / 45% 51% 49% 55%;
	background: radial-gradient(ellipse, rgba(45, 90, 61, 0.06) 0%, transparent 70%);
	animation: morphBlob 20s ease-in-out infinite;
}

.lp-content .maple-fv::after {
	content: "";
	position: absolute;
	bottom: -10%;
	left: -5%;
	width: 40vw;
	height: 40vw;
	max-width: 500px;
	max-height: 500px;
	border-radius: 53% 47% 39% 61% / 55% 49% 51% 45%;
	background: radial-gradient(ellipse, rgba(196, 149, 106, 0.07) 0%, transparent 70%);
	animation: morphBlob 25s ease-in-out infinite reverse;
}

@keyframes morphBlob {
	0%, 100% { border-radius: 47% 53% 61% 39% / 45% 51% 49% 55%; }
	25% { border-radius: 55% 45% 50% 50% / 48% 55% 45% 52%; }
	50% { border-radius: 42% 58% 55% 45% / 52% 48% 52% 48%; }
	75% { border-radius: 58% 42% 45% 55% / 50% 45% 55% 50%; }
}

/* Hero headline */
.lp-content .maple-fv h1 {
	font-family: "Zen Old Mincho", "Noto Serif JP", "Yu Mincho", serif;
	font-size: var(--m-fs-hero);
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: 0.06em;
	color: var(--m-ink);
	position: relative;
	z-index: 1;
}

/* Brush-stroke underline on key phrase */
.lp-content .maple-fv h1::after {
	content: "";
	display: block;
	width: 80px;
	height: 3px;
	margin: var(--m-space-md) auto 0;
	background: linear-gradient(90deg, transparent, var(--m-forest), var(--m-earth-warm), transparent);
	border-radius: 2px;
}

.lp-content .maple-fv .has-text-align-center {
	position: relative;
	z-index: 1;
	color: var(--m-text-light);
	font-size: var(--m-fs-body);
	line-height: 2;
	margin-top: var(--m-space-md);
}

/* FV buttons */
.lp-content .maple-fv .wp-block-buttons {
	position: relative;
	z-index: 1;
	margin-top: var(--m-space-lg);
}

@media (max-width: 599px) {
	.lp-content .maple-fv {
		min-height: 75vh;
		padding-top: 80px;
		padding-bottom: 80px;
	}
}

/* ------------------------------------------
   SECTION HEADINGS (H2) — Brush-accent style
   ------------------------------------------ */

/* SWELLデフォルトのH2装飾（背景色+白文字）をLP内でリセット */
.lp-content .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	background: none !important;
	color: var(--m-ink) !important;
	padding: 0 !important;
}

.lp-content .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	display: none !important;
}

.lp-content h2.wp-block-heading {
	font-family: "Zen Old Mincho", "Noto Serif JP", "Yu Mincho", serif;
	font-size: var(--m-fs-h2);
	font-weight: 600;
	color: var(--m-ink);
	line-height: 1.6;
	letter-spacing: 0.04em;
	margin-bottom: var(--m-space-sm);
	position: relative;
	background: none !important;
	padding: 0 !important;
}

/* Centered headings get a decorative underline */
.lp-content h2.wp-block-heading.has-text-align-center::after {
	content: "";
	display: block;
	width: 48px;
	height: 2px;
	margin: var(--m-space-sm) auto 0;
	background: linear-gradient(90deg, var(--m-forest), var(--m-earth-warm));
	border-radius: 1px;
}

/* Subtitle text after heading */
.lp-content h2.wp-block-heading + p {
	font-size: var(--m-fs-small);
	color: var(--m-text-muted);
	margin-top: var(--m-space-sm);
	margin-bottom: var(--m-space-xl);
}

/* H3 headings */
.lp-content h3.wp-block-heading {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: var(--m-fs-h3);
	font-weight: 700;
	color: var(--m-forest);
	line-height: 1.6;
	letter-spacing: 0.02em;
}

/* H4 headings */
.lp-content h4.wp-block-heading {
	font-size: 1rem;
	font-weight: 700;
	color: var(--m-text);
	margin-bottom: 0.5em;
}

/* ------------------------------------------
   CTA Buttons — Warm sunset, organic shape
   ------------------------------------------ */
.lp-content .wp-block-button__link {
	background: linear-gradient(135deg, var(--m-sunset) 0%, #C4603E 100%) !important;
	color: var(--m-white) !important;
	border: none !important;
	border-radius: var(--m-radius-xl) !important;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 1rem !important;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 18px 48px !important;
	min-height: 56px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 16px rgba(212, 115, 74, 0.25), 0 1px 3px rgba(212, 115, 74, 0.15);
	transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	text-decoration: none !important;
	position: relative;
	overflow: hidden;
}

.lp-content .wp-block-button__link::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 50%);
	border-radius: inherit;
	opacity: 0;
	transition: opacity 0.4s ease;
}

.lp-content .wp-block-button__link:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 28px rgba(212, 115, 74, 0.3), 0 2px 6px rgba(212, 115, 74, 0.2);
}

.lp-content .wp-block-button__link:hover::before {
	opacity: 1;
}

.lp-content .wp-block-button__link:active {
	transform: translateY(-1px);
}

@media (max-width: 599px) {
	.lp-content .wp-block-button__link {
		width: 100%;
		max-width: 320px;
		padding: 16px 32px !important;
		font-size: 0.9375rem !important;
	}
}

/* LINE green button override */
.lp-content .wp-block-button__link[style*="background-color:#06C755"] {
	background: linear-gradient(135deg, #06C755 0%, #05A847 100%) !important;
	box-shadow: 0 4px 16px rgba(6, 199, 85, 0.25), 0 1px 3px rgba(6, 199, 85, 0.15);
}

.lp-content .wp-block-button__link[style*="background-color:#06C755"]:hover {
	box-shadow: 0 8px 28px rgba(6, 199, 85, 0.3), 0 2px 6px rgba(6, 199, 85, 0.2);
}

/* ------------------------------------------
   SECTION: Troubles — お悩みセクション
   ------------------------------------------ */
.lp-content .maple-trouble {
	background-color: var(--m-bg) !important;
}

.lp-content .is-style-check_list {
	list-style: none !important;
	padding: 0 !important;
	max-width: 720px;
	margin: 0 auto;
}

.lp-content .is-style-check_list li {
	font-size: var(--m-fs-body);
	line-height: 1.9;
	padding: 1em 1.25em;
	margin-bottom: 0.5em;
	background: var(--m-white);
	border-radius: var(--m-radius);
	border-left: 3px solid var(--m-forest-pale);
	box-shadow: var(--m-shadow-sm);
	transition: all 0.3s ease;
	position: relative;
}

.lp-content .is-style-check_list li:hover {
	border-left-color: var(--m-forest);
	box-shadow: var(--m-shadow);
	transform: translateX(4px);
}

/* Fade separator */
.lp-content .maple-trouble .wp-block-separator {
	border: none !important;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--m-line), transparent);
	margin: var(--m-space-lg) 0;
	opacity: 0.6;
}

/* ------------------------------------------
   SECTION: Service — できること
   ------------------------------------------ */
.lp-content .maple-service {
	background-color: var(--m-earth-pale) !important;
	position: relative;
}

/* Subtle top wave */
.lp-content .maple-service::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	right: 0;
	height: 48px;
	background: var(--m-bg);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48'%3E%3Cpath d='M0,0 C360,48 720,48 1080,24 C1260,12 1380,6 1440,0 L1440,48 L0,48 Z' fill='white'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48'%3E%3Cpath d='M0,0 C360,48 720,48 1080,24 C1260,12 1380,6 1440,0 L1440,48 L0,48 Z' fill='white'/%3E%3C/svg%3E");
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	transform: rotate(180deg);
}

/* Service pillar cards */
.lp-content .maple-service .wp-block-column {
	background: var(--m-white) !important;
	border-radius: var(--m-radius-lg) !important;
	padding: var(--m-space-lg) var(--m-space-md) !important;
	box-shadow: var(--m-shadow) !important;
	border: 1px solid rgba(45, 90, 61, 0.06);
	transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	position: relative;
	overflow: hidden;
}

.lp-content .maple-service .wp-block-column::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--m-forest), var(--m-forest-light));
	border-radius: var(--m-radius-lg) var(--m-radius-lg) 0 0;
	opacity: 0;
	transition: opacity 0.4s ease;
}

.lp-content .maple-service .wp-block-column:hover {
	transform: translateY(-6px);
	box-shadow: var(--m-shadow-float) !important;
}

.lp-content .maple-service .wp-block-column:hover::before {
	opacity: 1;
}

.lp-content .maple-service .wp-block-column h3 {
	font-size: var(--m-fs-h3);
	text-align: center;
	margin-bottom: var(--m-space-sm);
}

/* "What becomes clear" box */
.lp-content .maple-service > .swell-block-fullWide__inner > .wp-block-group {
	background: var(--m-forest-pale) !important;
	border-radius: var(--m-radius) !important;
	border: 1px solid rgba(45, 90, 61, 0.1);
	padding: var(--m-space-md) var(--m-space-lg) !important;
	margin-top: var(--m-space-xl);
}

.lp-content .maple-service > .swell-block-fullWide__inner > .wp-block-group h3 {
	color: var(--m-forest);
	font-size: 1.05rem;
}

.lp-content .maple-service > .swell-block-fullWide__inner > .wp-block-group ul li {
	position: relative;
	padding-left: 1.4em;
	margin-bottom: 0.4em;
}

.lp-content .maple-service > .swell-block-fullWide__inner > .wp-block-group ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.75em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--m-forest);
	opacity: 0.4;
}

/* Comparison columns (scope) */
.lp-content .maple-service .wp-block-column[style*="background-color:#EFF5EF"] {
	background: var(--m-forest-pale) !important;
	border-radius: var(--m-radius) !important;
	border: 1px solid rgba(45, 90, 61, 0.1) !important;
	box-shadow: none !important;
}

.lp-content .maple-service .wp-block-column[style*="background-color:#FFF8F0"] {
	background: var(--m-earth-pale) !important;
	border-radius: var(--m-radius) !important;
	border: 1px solid rgba(196, 149, 106, 0.15) !important;
	box-shadow: none !important;
}

.lp-content .maple-service .wp-block-column[style*="background-color:#EFF5EF"]:hover,
.lp-content .maple-service .wp-block-column[style*="background-color:#FFF8F0"]:hover {
	transform: none;
	box-shadow: none !important;
}

.lp-content .maple-service .wp-block-column[style*="background-color:#EFF5EF"]::before,
.lp-content .maple-service .wp-block-column[style*="background-color:#FFF8F0"]::before {
	display: none;
}

/* ------------------------------------------
   SECTION: Value — 整理する価値
   ------------------------------------------ */
.lp-content .maple-value {
	background-color: var(--m-bg) !important;
}

/* Warning box */
.lp-content .maple-value .wp-block-group[style*="background-color:#FFF5F5"] {
	background: linear-gradient(135deg, #FFF8F5 0%, #FFF3EE 100%) !important;
	border: 1px solid #E8CDC0 !important;
	border-radius: var(--m-radius-lg) !important;
	padding: var(--m-space-lg) !important;
	box-shadow: var(--m-shadow-sm);
}

.lp-content .maple-value .wp-block-group[style*="background-color:#FFF5F5"] h3 {
	color: #B85C3A !important;
	font-size: 1.1rem;
	font-weight: 700;
}

.lp-content .maple-value .wp-block-group[style*="background-color:#FFF5F5"] h4 {
	color: #96523A;
	padding-left: 1em;
	border-left: 3px solid #E8CDC0;
	margin-top: 1.5em;
}

/* Merit box */
.lp-content .maple-value .wp-block-group[style*="background-color:#F0FAF0"] {
	background: linear-gradient(135deg, #F2F8F4 0%, #ECF5EE 100%) !important;
	border: 1px solid #B8D4BC !important;
	border-radius: var(--m-radius-lg) !important;
	padding: var(--m-space-lg) !important;
	box-shadow: var(--m-shadow-sm);
}

.lp-content .maple-value .wp-block-group[style*="background-color:#F0FAF0"] h3 {
	color: var(--m-forest) !important;
	font-size: 1.1rem;
	font-weight: 700;
}

.lp-content .maple-value .wp-block-group[style*="background-color:#F0FAF0"] h4 {
	color: var(--m-forest);
	padding-left: 1em;
	border-left: 3px solid #B8D4BC;
	margin-top: 1.5em;
}

/* ------------------------------------------
   SECTION: Reasons — 選ばれる理由
   ------------------------------------------ */
.lp-content .maple-reasons {
	background-color: var(--m-bg) !important;
}

.lp-content .maple-reasons .wp-block-column {
	box-shadow: var(--m-shadow) !important;
	border: 1px solid var(--m-line-light) !important;
	transition: all 0.4s ease;
	position: relative;
	overflow: hidden;
}

.lp-content .maple-reasons .wp-block-column::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--m-forest), var(--m-earth-warm));
	opacity: 0;
	transition: opacity 0.4s ease;
}

.lp-content .maple-reasons .wp-block-column:hover {
	transform: translateY(-4px);
	box-shadow: var(--m-shadow-lg) !important;
}

.lp-content .maple-reasons .wp-block-column:hover::before {
	opacity: 1;
}

/* ------------------------------------------
   SECTION: Cases — 解決事例
   ------------------------------------------ */
.lp-content .maple-cases {
	background: linear-gradient(180deg, var(--m-forest-pale) 0%, #E0EBE3 100%) !important;
}

.lp-content .maple-cases .wp-block-group {
	box-shadow: var(--m-shadow);
	border: 1px solid rgba(45, 90, 61, 0.06);
	transition: all 0.4s ease;
}

.lp-content .maple-cases .wp-block-group:hover {
	box-shadow: var(--m-shadow-lg);
	transform: translateY(-2px);
}

/* ------------------------------------------
   SECTION: Profile — 代表紹介
   ------------------------------------------ */
.lp-content .maple-profile {
	background-color: var(--m-earth-pale) !important;
}

.lp-content .maple-profile .wp-block-group[style*="background-color:#ffffff"] {
	box-shadow: var(--m-shadow);
	text-align: center;
}

.lp-content .maple-profile h3.wp-block-heading[style*="font-size:26px"] {
	font-family: "Zen Old Mincho", serif;
	color: var(--m-ink) !important;
}

/* ------------------------------------------
   SECTION: Experts — 専門家連携
   ------------------------------------------ */
.lp-content .maple-experts {
	background: linear-gradient(180deg, var(--m-forest-pale) 0%, #E0EBE3 100%) !important;
}

.lp-content .wp-block-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
}

.lp-content .wp-block-table table {
	min-width: 640px;
	border-collapse: separate;
	border-spacing: 0;
	font-size: var(--m-fs-small);
	background: var(--m-white);
	border-radius: var(--m-radius);
	overflow: hidden;
}

.lp-content .wp-block-table th {
	background: linear-gradient(135deg, var(--m-forest) 0%, var(--m-forest-light) 100%);
	color: var(--m-white);
	font-weight: 700;
	font-size: var(--m-fs-small);
	padding: 16px 20px;
	text-align: left;
	letter-spacing: 0.04em;
}

.lp-content .wp-block-table td {
	padding: 16px 20px;
	border-bottom: 1px solid var(--m-line-light);
	vertical-align: top;
	color: var(--m-text);
	transition: background 0.2s ease;
}

.lp-content .wp-block-table tbody tr:hover td {
	background: rgba(45, 90, 61, 0.03);
}

.lp-content .wp-block-table tbody tr:last-child td {
	border-bottom: none;
}

/* Note box below table */
.lp-content .maple-experts .wp-block-group[style*="background-color:#ffffff"] {
	background: var(--m-white) !important;
	border-radius: var(--m-radius) !important;
	border: 1px solid rgba(45, 90, 61, 0.1);
	box-shadow: var(--m-shadow-sm);
}

@media (max-width: 599px) {
	.lp-content .wp-block-table th,
	.lp-content .wp-block-table td {
		padding: 12px 14px;
		font-size: 0.8125rem;
	}
}

/* ------------------------------------------
   SECTION: Voices — お客様の声
   ------------------------------------------ */
.lp-content .maple-voice {
	background-color: var(--m-bg) !important;
}

/* Voice cards */
.lp-content .maple-voice .wp-block-column {
	background: var(--m-white) !important;
	border-radius: var(--m-radius-lg) !important;
	padding: var(--m-space-lg) !important;
	box-shadow: var(--m-shadow) !important;
	border: 1px solid var(--m-line-light);
	position: relative;
	transition: all 0.4s ease;
}

.lp-content .maple-voice .wp-block-column::before {
	content: "\201C";
	position: absolute;
	top: 16px;
	left: 20px;
	font-size: 4rem;
	font-family: "Zen Old Mincho", Georgia, serif;
	color: var(--m-forest);
	opacity: 0.1;
	line-height: 1;
	pointer-events: none;
}

.lp-content .maple-voice .wp-block-column:hover {
	box-shadow: var(--m-shadow-lg) !important;
	transform: translateY(-4px);
}

/* Attribution */
.lp-content .maple-voice .wp-block-column p[style*="color:#888888"] {
	color: var(--m-text-muted) !important;
	font-size: var(--m-fs-small) !important;
	padding-left: 1em;
	border-left: 2px solid var(--m-earth-warm);
}

/* Voice heading */
.lp-content .maple-voice .wp-block-column h3 {
	color: var(--m-forest) !important;
	font-family: "Zen Old Mincho", serif;
	font-size: 1.125rem !important;
	font-weight: 600;
	margin-top: 0.75em;
	margin-bottom: 1em;
}

/* ------------------------------------------
   SECTION: Flow — ご相談の流れ
   ------------------------------------------ */
.lp-content .maple-flow {
	background-color: var(--m-earth-pale) !important;
}

.lp-content .swell-block-step {
	max-width: 720px;
	margin: 0 auto;
}

/* Step number circle */
.lp-content .swell-block-step__item .swell-block-step__title {
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 700;
	font-size: var(--m-fs-h3);
	color: var(--m-ink);
}

.lp-content .swell-block-step__body {
	font-size: var(--m-fs-body);
	line-height: 2;
	padding-bottom: var(--m-space-md);
}

.lp-content .swell-block-step__body p[style*="color:#888888"] {
	color: var(--m-text-muted) !important;
}

/* ------------------------------------------
   SECTION: FAQ — よくある質問
   ------------------------------------------ */
.lp-content .maple-faq {
	background-color: var(--m-bg) !important;
}

.lp-content .swell-block-accordion {
	max-width: 760px;
	margin: 0 auto var(--m-space-sm);
	background: var(--m-white);
	border-radius: var(--m-radius) !important;
	border: 1px solid var(--m-line);
	overflow: hidden;
	box-shadow: var(--m-shadow-sm);
	transition: box-shadow 0.3s ease;
}

.lp-content .swell-block-accordion:hover {
	box-shadow: var(--m-shadow);
}

.lp-content .swell-block-accordion__title {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: var(--m-fs-body) !important;
	font-weight: 700;
	padding: 1.25em 1.5em !important;
	color: var(--m-ink);
	background: transparent;
	transition: background 0.2s ease;
}

.lp-content .swell-block-accordion__title:hover {
	background: rgba(45, 90, 61, 0.03);
}

.lp-content .swell-block-accordion__body {
	font-size: var(--m-fs-body) !important;
	line-height: 2;
	padding: 0 1.5em 1.5em !important;
	color: var(--m-text-light);
}

/* ------------------------------------------
   SECTION: Contact — お問い合わせ
   ------------------------------------------ */
.lp-content .maple-contact {
	background: linear-gradient(160deg, var(--m-forest) 0%, #1E4A2E 60%, #1A3D28 100%) !important;
	position: relative;
	overflow: hidden;
}

/* Decorative texture overlay */
.lp-content .maple-contact::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");
	pointer-events: none;
}

/* Floating glow */
.lp-content .maple-contact::after {
	content: "";
	position: absolute;
	top: -20%;
	right: -10%;
	width: 40%;
	height: 80%;
	border-radius: 50%;
	background: radial-gradient(ellipse, rgba(196, 149, 106, 0.08) 0%, transparent 70%);
	pointer-events: none;
}

.lp-content .maple-contact h2 {
	color: var(--m-white) !important;
	position: relative;
	z-index: 1;
}

.lp-content .maple-contact h2::after {
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), var(--m-earth-warm), rgba(255,255,255,0.5), transparent);
}

.lp-content .maple-contact > .swell-block-fullWide__inner > p {
	color: rgba(255, 255, 255, 0.85) !important;
	position: relative;
	z-index: 1;
}

/* Contact method cards */
.lp-content .maple-contact .wp-block-column {
	background: var(--m-white) !important;
	border-radius: var(--m-radius-lg) !important;
	padding: var(--m-space-lg) var(--m-space-md) !important;
	box-shadow: var(--m-shadow-lg) !important;
	text-align: center;
	position: relative;
	z-index: 1;
	transition: all 0.4s ease;
	border: none !important;
}

.lp-content .maple-contact .wp-block-column:hover {
	transform: translateY(-6px);
	box-shadow: var(--m-shadow-float) !important;
}

.lp-content .maple-contact .wp-block-column h3 {
	color: var(--m-ink) !important;
	font-size: 1.2rem !important;
}

/* Phone number */
.lp-content .maple-contact .wp-block-column p[style*="font-weight:700"] a {
	color: var(--m-forest) !important;
	text-decoration: none;
	font-family: "Zen Old Mincho", serif;
	letter-spacing: 0.08em;
}

/* Safety message box */
.lp-content .maple-contact > .swell-block-fullWide__inner > .wp-block-group {
	background: rgba(255, 255, 255, 0.08) !important;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--m-radius-lg) !important;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	position: relative;
	z-index: 1;
}

.lp-content .maple-contact .wp-block-group p {
	color: rgba(255, 255, 255, 0.95) !important;
}

/* ------------------------------------------
   SECTION: Footer
   ------------------------------------------ */
.lp-content .maple-footer {
	background: var(--m-ink) !important;
	padding-top: var(--m-space-xl) !important;
	padding-bottom: var(--m-space-xl) !important;
}

.lp-content .maple-footer p {
	color: rgba(255, 255, 255, 0.6) !important;
	font-size: var(--m-fs-small) !important;
	line-height: 2;
}

.lp-content .maple-footer p[style*="color:#999999"] {
	color: rgba(255, 255, 255, 0.3) !important;
	margin-top: var(--m-space-md);
}

/* ------------------------------------------
   SP Fixed Footer CTA
   ------------------------------------------ */
.maple-fixed-cta {
	display: none;
}

@media (max-width: 599px) {
	.maple-fixed-cta {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 9999;
		display: flex;
		background: var(--m-white);
		box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
		border-top: 1px solid var(--m-line);
	}

	.maple-fixed-cta a {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		padding: 16px 0;
		font-family: "Zen Maru Gothic", sans-serif;
		font-size: 0.875rem;
		font-weight: 700;
		text-decoration: none;
		color: var(--m-white);
		letter-spacing: 0.04em;
		transition: filter 0.2s ease;
	}

	.maple-fixed-cta a:active {
		filter: brightness(0.9);
	}

	.maple-fixed-cta .maple-cta-phone {
		background: linear-gradient(135deg, var(--m-forest) 0%, var(--m-forest-light) 100%);
	}

	.maple-fixed-cta .maple-cta-line {
		background: linear-gradient(135deg, #06C755 0%, #05A847 100%);
	}

	/* Space for fixed bar */
	.lp-content {
		padding-bottom: 56px;
	}
}

/* ------------------------------------------
   Accessibility & Senior-Friendly
   ------------------------------------------ */

/* Minimum font sizes */
.lp-content small,
.lp-content .wp-block-table caption,
.lp-content figcaption {
	font-size: max(0.9375rem, 15px);
}

/* Tap targets */
.lp-content a,
.lp-content button {
	min-height: 44px;
}

/* Focus ring */
.lp-content a:focus-visible,
.lp-content button:focus-visible {
	outline: 3px solid var(--m-forest);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.maple-reveal {
		opacity: 1;
		transform: none;
	}

	.maple-reveal-children > * {
		opacity: 1;
		transform: none;
	}
}

/* ------------------------------------------
   Smooth scroll
   ------------------------------------------ */
html {
	scroll-behavior: smooth;
}

/* ------------------------------------------
   Responsive fine-tuning
   ------------------------------------------ */
@media (max-width: 781px) {
	.lp-content .wp-block-columns {
		gap: var(--m-space-md);
	}

	.lp-content .maple-service .wp-block-column,
	.lp-content .maple-voice .wp-block-column,
	.lp-content .maple-contact .wp-block-column {
		margin-bottom: var(--m-space-sm);
	}
}

@media (max-width: 599px) {
	:root {
		--m-space-section: 3.5rem;
	}

	.lp-content .swell-block-fullWide__inner[data-width="article"] {
		padding-left: var(--m-space-sm);
		padding-right: var(--m-space-sm);
	}

	.lp-content .maple-value .wp-block-group[style*="background-color:#FFF5F5"],
	.lp-content .maple-value .wp-block-group[style*="background-color:#F0FAF0"] {
		padding: var(--m-space-md) !important;
	}

	.lp-content .maple-voice .wp-block-column {
		padding: var(--m-space-md) !important;
	}

	.lp-content .maple-contact .wp-block-column {
		padding: var(--m-space-md) !important;
	}
}
