/* =========================
  Variables
========================= */
:root {
	/* Colors */
	--c-text: #111;
	--c-bg: #fff;

	--c-muted: #555;
	--c-muted-2: #666;

	--c-border: #ddd;

	--c-accent-bg: #ffe6ee;

	/* 追加：アクセント背景グラデ */
	--accent-grad-from: #ffe6ee;
	/* ベース */
	--accent-grad-to: #fff;
	/* 少し濃いめ（お好みで調整） */
	--accent-gradient: linear-gradient(180deg, var(--accent-grad-from), var(--accent-grad-to));


	/* Shadows */
	--shadow-sm: 0 0.125rem 0.625rem rgba(0, 0, 0, 0.08);
	/* 0 2px 10px */
	--shadow-md: 0 0.25rem 0.875rem rgba(0, 0, 0, 0.14);
	/* 0 4px 14px */
	--shadow-xs: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.10);
	/* 0 2px 8px */

	/* Layout */
	--container: 680px;

	/* Spacing */
	--space-1: 1rem;
	/* 16px */
	--space-2: 2rem;
	/* 32px */
	--space-075: 0.75rem;
	/* 12px */

	/* Radius */
	--radius-sm: 0.5rem;
	/* 8px */
	--radius-pill: 9999px;

	/* Back to top */
	--bt-size: 2.75rem;
	/* 44px */

	/* Motion */
	--dur-fast: 0.2s;


	/* Font families */
	--ff-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans JP",
		"Hiragino Kaku Gothic ProN", Meiryo, sans-serif;

	--ff-serif: "Hiragino Mincho ProN", "Hiragino Mincho Pro",
		"Yu Mincho", "YuMincho",
		"MS Mincho",
		serif;
}

/* =========================
  Simple Reset
========================= */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	/* 1rem = 16px */
	font-size: 100%;
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: var(--ff-sans);
	line-height: 1.6;
	color: var(--c-text);
	background: var(--c-bg);
}

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

h1,
h2,
h3,
p {
	margin: 0;
}

/* =========================
  Layout
========================= */
.site__main {
	display: block;
}

.lp {
	background: var(--accent-gradient);
}

/* =========================
  LP Header (H1)
========================= */
.lp__header {
	width: min(var(--container), 100%);
	margin-inline: auto;
	padding: var(--space-1) var(--space-1) 0.5rem;
	/* 16px 16px 8px */
	text-align: center;
}

.lp__title {
	font-size: 1.5rem;
	/* 24px */
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	font-family: var(--ff-serif);
}

/* 画像リンクの見た目を崩さない */
.lp__image-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

/* =========================
  LP
========================= */
.lp__fullbleed {}

.lp__container {
	width: min(var(--container), 100%);
	margin-inline: auto;
	text-align: center;
}

.lp__image {
	width: 100%;
}

/* LP内リンク：hoverで少し薄くする（マウス操作時のみ） */
@media (hover: hover) and (pointer: fine) {
	.lp a:hover {
		opacity: 0.8;
	}
}

/* =========================
  Form Section
========================= */
.form-section {
	padding: var(--space-2) var(--space-1);
	/* 32px 16px */
}

.form-section__container {
	width: min(var(--container), 100%);
	margin-inline: auto;
}

.form-section__title {
	font-size: 1.125rem;
	margin-bottom: var(--space-075);
	text-align: center;
	font-family: var(--ff-serif);
}

.form-embed {
	border-radius: var(--radius-sm);
	padding: var(--space-1);
	min-height: 11.25rem;
}


/* =========================
  Footer
========================= */
.site__footer {
	padding: 1.5rem var(--space-1);
	/* 24px 16px */
}

.site__copyright {
	display: block;
	text-align: center;
	font-size: 0.75rem;
	/* 12px */
	color: var(--c-muted-2);
}

/* =========================
  Footer Info
========================= */
.site-footer-info {
	width: min(var(--container), 100%);
	margin: 0 auto var(--space-1);
	font-size: 0.875rem;
	/* 14px */
	line-height: 1.7;
	color: var(--c-muted);
	text-align: center;
}

.site-footer-info__label,
.site-footer-info__name,
.site-footer-info__url,
.site-footer-info__address,
.site-footer-info__biz {
	margin: 0;
}

.site-footer-info__url a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}


/* =========================
  ページ上部へ戻る
========================= */
.back-to-top {
	position: fixed;
	right: var(--space-1);
	/* 16px */
	bottom: var(--space-1);
	/* 16px */

	width: var(--bt-size);
	/* 44px */
	height: var(--bt-size);
	/* 44px */
	display: grid;
	place-items: center;

	border: 0.0625rem solid var(--c-border);
	/* 1px */
	border-radius: var(--radius-pill);
	background: var(--c-bg);
	color: var(--c-text);
	text-decoration: none;
	box-shadow: var(--shadow-sm);

	/* 初期は非表示 */
	opacity: 0;
	visibility: hidden;
	transform: translateY(0.375rem);
	/* 6px */
	pointer-events: none;
	transition: opacity var(--dur-fast) ease, transform var(--dur-fast) ease, visibility var(--dur-fast) ease;
}

.back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.back-to-top:focus-visible {
	outline: 0.125rem solid var(--c-text);
	/* 2px */
	outline-offset: 0.125rem;
	/* 2px */
}

/* hover / active（マウス操作時のみhoverを有効化） */
@media (hover: hover) and (pointer: fine) {
	.back-to-top:hover {
		transform: translateY(0) scale(1.04);
		box-shadow: var(--shadow-md);
	}
}

/* クリック中 */
.back-to-top:active {
	transform: translateY(0) scale(0.98);
	box-shadow: var(--shadow-xs);
}


/* =========================
  Accordion Panel
  ※パネル内テキストは最大14px（=0.875rem）に統一
========================= */
.panel {
	border: 0.0625rem solid var(--c-border);
	border-radius: var(--radius-sm);
	background: var(--c-bg);
	margin-bottom: var(--space-1);
	overflow: hidden;

	font-size: 0.875rem;
	/* 14px */
}

.panel__summary {
	list-style: none;
	cursor: pointer;
	padding: var(--space-1);
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: space-between;

	font-size: 0.875rem;
	/* 14px */
}

.panel__summary::-webkit-details-marker {
	display: none;
}

.panel__summary::after {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-right: 0.125rem solid var(--c-muted-2);
	border-bottom: 0.125rem solid var(--c-muted-2);
	transform: rotate(45deg);
	transition: transform var(--dur-fast) ease;
}

.panel[open] .panel__summary::after {
	transform: rotate(-135deg);
}

.panel__body {
	padding: 0 var(--space-1) var(--space-1);
}

.panel__list {
	margin: 0;
	padding-left: 1.25rem;
}

.panel__item+.panel__item {
	margin-top: var(--space-1);
}

.panel__heading {
	font-size: 0.875rem;
	/* 14px */
	margin: 0 0 0.25rem;
}

.panel__text {
	margin: 0;
	color: var(--c-muted);
	font-size: 0.875rem;
	/* 14px */
}

.panel__bullets {
	margin: 0.5rem 0 0;
	padding-left: 1.25rem;
	color: var(--c-muted);
	font-size: 0.875rem;
	/* 14px */
}

.panel__dl {
	margin: 0.5rem 0 0;
}

.panel__dl-row {
	display: grid;
	grid-template-columns: 6.5rem 1fr;
	gap: 0.5rem;
	padding: 0.25rem 0;
}

.panel__dl-row dt {
	color: var(--c-muted-2);
	font-size: 0.875rem;
	/* 14px */
}

.panel__dl-row dd {
	margin: 0;
	font-size: 0.875rem;
	/* 14px */
}

.panel__dl-row a {
	color: inherit;
}