/* ======================================
   LP Campaign
====================================== */

.lp-campaign {
	--lp-color-main: #d72638;
	--lp-color-main-dark: #b81f2f;
	--lp-color-sub: #1d3557;
	--lp-color-bg: #ffffff;
	--lp-color-bg-light: #f7f8fa;
	--lp-color-text: #222222;
	--lp-color-text-sub: #666666;
	--lp-color-border: #e5e7eb;
	--lp-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	--lp-radius: 16px;
	--lp-width: 1120px;
	--lp-header-height: 72px;

	color: var(--lp-color-text);
	background: var(--lp-color-bg);
	line-height: 1.75;
	font-family: "Noto Sans JP", sans-serif;
	position: relative;
}

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

.lp-campaign h1,
.lp-campaign h2,
.lp-campaign h3,
.lp-campaign h4,
.lp-campaign h5,
.lp-campaign h6,
.lp-campaign p,
.lp-campaign ul,
.lp-campaign ol,
.lp-campaign li {
	margin-top: 0;
}

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

.lp-campaign a {
	color: inherit;
	text-decoration: none;
}

.lp-campaign ul,
.lp-campaign ol {
	padding-left: 0;
}

.lp-campaign__container {
	width: min(100% - 32px, var(--lp-width));
	margin-inline: auto;
}

.lp-campaign__section {
	padding: 80px 0;
}

.lp-campaign__section--light {
	background: var(--lp-color-bg-light);
}

.lp-campaign__section--accent {
	background: linear-gradient(135deg, #fff4f2 0%, #ffffff 100%);
}

.lp-campaign__section--final {
	background: linear-gradient(160deg, #ece5e5 0%, #cac9c9 30% 50%);
	color: #ffffff;
}

.lp-campaign__heading {
	text-align: center;
	margin-bottom: 48px;
}

.lp-campaign__subtitle {
	margin: 0 0 8px;
	color: var(--lp-color-main);
	font-weight: 700;
	letter-spacing: .04em;
}

.lp-campaign__title {
	margin: 0;
	font-size: clamp(1.8rem, 3vw, 2.5rem);
	line-height: 1.3;
}

.lp-campaign__card {
	background: #ffffff;
	border: 1px solid var(--lp-color-border);
	border-radius: var(--lp-radius);
	box-shadow: var(--lp-shadow);
}

/* Header */
.lp-campaign__header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.admin-bar .lp-campaign__header {
	top: 32px;
}

.lp-campaign__header-inner {
	min-height: var(--lp-header-height);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.lp-campaign__logo {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--lp-color-text);
}

.lp-campaign__nav {
	display: flex;
	gap: 24px;
}

.lp-campaign__nav a {
	font-size: .95rem;
	color: var(--lp-color-text-sub);
}

.lp-campaign__header-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 18px;
	border-radius: 999px;
	background: var(--lp-color-main);
	color: #ffffff !important;
	font-weight: 700;
}

/* Buttons */
.lp-campaign__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	border-radius: 999px;
	font-weight: 700;
	transition: .25s ease;
}

.lp-campaign__btn--primary {
	background: var(--lp-color-main);
	color: #ffffff !important;
}

.lp-campaign__btn--primary:hover {
	background: var(--lp-color-main-dark);
}

.lp-campaign__btn--secondary {
	background: #ffffff;
	color: var(--lp-color-main);
	border: 1px solid var(--lp-color-main);
}

.lp-campaign__btn--large {
	min-height: 58px;
	padding: 0 32px;
}

/* Hero */
.lp-campaign__hero {
	position: relative;
	overflow: hidden;
	padding: 40px 0 72px;
	background: #ffffff;
}

.lp-campaign__hero-image-wrap {
	width: 100%;
}

.lp-campaign__hero-image {
	width: 100%;
	max-width: 100%;
	height: auto;
	object-fit: contain;
	min-height: 100%;
}

.lp-campaign__hero-content {
	padding-top: 40px;
	text-align: center;
}

.lp-campaign__hero-label {
	margin: 0 0 12px;
	color: var(--lp-color-main);
	font-weight: 700;
	font-size: clamp(1rem, 2vw, 1.1rem);
}

.lp-campaign__hero-title {
	margin: 0 0 16px;
	font-size: clamp(2rem, 5vw, 3.6rem);
	line-height: 1.2;
}

.lp-campaign__hero-period {
	margin: 0 0 8px;
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	font-weight: 700;
	color: var(--lp-color-main);
}

.lp-campaign__hero-note {
	margin: 0 0 24px;
	font-size: 0.95rem;
	color: var(--lp-color-text-sub);
}

.lp-campaign__hero-actions {
	display: flex;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
}

/* Worries */
.lp-campaign__worry-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.lp-campaign__worry-card {
	padding: 28px 24px;
}

.lp-campaign__worry-card h3 {
	margin: 0 0 10px;
	font-size: 1.15rem;
}

.lp-campaign__worry-card p {
	margin: 0;
	color: var(--lp-color-text-sub);
}

/* Reasons */
.lp-campaign__reason-list {
	display: grid;
	gap: 32px;
}

.lp-campaign__reason-item {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	align-items: center;
}

.lp-campaign__reason-item.is-reverse .lp-campaign__reason-image {
	order: 2;
}

.lp-campaign__reason-item.is-reverse .lp-campaign__reason-body {
	order: 1;
}

.lp-campaign__reason-image img {
	width: 100%;
	border-radius: var(--lp-radius);
	box-shadow: var(--lp-shadow);
}

.lp-campaign__reason-body h3 {
	margin: 0 0 12px;
	font-size: 1.5rem;
}

.lp-campaign__reason-body p {
	margin: 0;
	color: var(--lp-color-text-sub);
}

/* Feature */
.lp-campaign__feature {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	align-items: center;
}

.lp-campaign__feature-image img {
	border-radius: var(--lp-radius);
	box-shadow: var(--lp-shadow);
}

.lp-campaign__feature-body p:last-child {
	margin-bottom: 0;
	color: var(--lp-color-text-sub);
}

/* Benefits */
.lp-campaign__benefit-banner {
	margin-bottom: 28px;
}

.lp-campaign__benefit-banner img {
	width: 100%;
	border-radius: var(--lp-radius);
	box-shadow: var(--lp-shadow);
}

.lp-campaign__benefit-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

.lp-campaign__benefit-card {
	padding: 28px 24px;
	text-align: center;
	border: 3pt solid var(--lp-color-main);
}

.lp-campaign__benefit-number {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--lp-color-main);
	font-weight: 800;
	font-size: 1.5rem;
}

.lp-campaign__benefit-card h2 {
	margin: 0 0 10px;
	white-space: pre-line;
	font-size: 1.5rem;
	line-height: 1.4;
}

.lp-campaign__benefit-highlight {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--lp-color-main);
	white-space: pre-line;
}

/* Process */
.lp-campaign__process-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 20px;
}

.lp-campaign__process-item {
	background: #ffffff;
	border: 1px solid var(--lp-color-border);
	border-radius: var(--lp-radius);
	padding: 24px;
	box-shadow: var(--lp-shadow);
}

.lp-campaign__process-step {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--lp-color-main);
	font-weight: 700;
}

.lp-campaign__process-item h3 {
	margin: 0 0 8px;
}

.lp-campaign__process-item p {
	margin: 0;
	color: var(--lp-color-text-sub);
}

/* Final CTA */
.lp-campaign__final-cta {
	text-align: center;
}

.lp-campaign__final-cta h2 {
	margin: 0 0 12px;
	font-size: clamp(1.8rem, 3vw, 2.4rem);
}

.lp-campaign__final-cta p {
	margin: 0 0 24px;
	opacity: .92;
}

/* Fixed CTA */
.lp-campaign__fixed-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1100;
	display: none;
	justify-content: center;
	align-items: center;
	width: 100%;
	min-height: 60px;
	padding: 14px 20px calc(14px + env(safe-area-inset-bottom));
	background: var(--lp-color-main);
	color: #ffffff !important;
	font-weight: 700;
	box-shadow: 0 -8px 20px rgba(0, 0, 0, 0.16);
}

/* Responsive */
@media (max-width: 1024px) {
	.lp-campaign__worry-grid,
	.lp-campaign__benefit-grid,
	.lp-campaign__feature,
	.lp-campaign__reason-item {
		grid-template-columns: 1fr;
	}

	.lp-campaign__reason-item.is-reverse .lp-campaign__reason-image,
	.lp-campaign__reason-item.is-reverse .lp-campaign__reason-body {
		order: initial;
	}
}

@media (max-width: 782px) {
	.admin-bar .lp-campaign__header {
		top: 46px;
	}
}

@media (max-width: 768px) {
	.lp-campaign {
		padding-bottom: calc(80px + env(safe-area-inset-bottom));
	}

	.lp-campaign__section {
		padding: 56px 0;
	}

	.lp-campaign__nav,
	.lp-campaign__header-cta {
		display: none;
	}

	.lp-campaign__header-inner {
		justify-content: center;
	}

	.lp-campaign__hero {
		padding-top: 24px;
	}

	.lp-campaign__hero-content {
		padding-top: 24px;
		text-align: center;
	}

	.lp-campaign__hero-actions {
		justify-content: center;
		flex-direction: column;
		align-items: stretch;
		margin-inline: auto;
		max-width: 360px;
	}

	.lp-campaign__hero-actions .lp-campaign__btn {
		width: 100%;
	}

	.lp-campaign__fixed-cta {
		display: flex;
	}
}
