/* ============================================
   FAQアコーディオン
   ============================================ */
.majun-faq-answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.35s ease;
}
.majun-faq-item.is-open .majun-faq-icon {
	transform: rotate(180deg);
}

/* ============================================
   カスタムロゴのサイズ調整
   WordPress標準の the_custom_logo() はTailwindクラスの影響を受けないため、
   CSSで直接サイズを固定しています。
   ============================================ */
.custom-logo {
	height: 60px;
	width: auto;
	max-width: 280px;
	object-fit: contain;
}
@media (max-width: 767px) {
	.custom-logo {
		height: 40px;
		max-width: 200px;
	}
}

/* ============================================
   カスタムカーソル演出（元のReactサイトのCustomCursorコンポーネントを再現）
   PC表示（768px以上）でのみ有効。丸いリング+ドットがマウスに追従します。
   実際の描画・追従処理は js/main.js の initCustomCursor() で行っています。
   ============================================ */
@media (min-width: 768px) {
	body, a, button, input, textarea, select, [role="button"], [tabindex] {
		cursor: none;
	}
}
#majun-cursor-ring {
	display: none;
	position: fixed;
	pointer-events: none;
	z-index: 9999;
	width: 2rem;
	height: 2rem;
	border-radius: 9999px;
	border: 2px solid oklch(var(--primary-500) / 0.5);
	transform: translate(-50%, -50%);
	will-change: left, top;
}
#majun-cursor-dot {
	display: none;
	position: fixed;
	pointer-events: none;
	z-index: 9999;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 9999px;
	background: oklch(var(--primary-500));
	transform: translate(-50%, -50%);
	will-change: left, top;
}
@media (min-width: 768px) {
	#majun-cursor-ring, #majun-cursor-dot { display: block; }
}

/* ============================================
   Contact Form 7 のスタイルを、元のデザインに合わせて調整
   ============================================ */
.majun-cf7-wrap .wpcf7-form-control-wrap { display: block; margin-bottom: 1rem; }
.majun-cf7-wrap .wpcf7 label { display: block; }
.majun-cf7-wrap input[type="text"],
.majun-cf7-wrap input[type="email"],
.majun-cf7-wrap input[type="tel"],
.majun-cf7-wrap select,
.majun-cf7-wrap textarea {
	width: 100%;
	padding: 0.625rem 0.875rem;
	background: oklch(var(--background-50));
	border: 1px solid oklch(var(--background-300) / 0.6);
	border-radius: 0.375rem;
	font-size: 0.875rem;
	color: oklch(var(--foreground-900));
	transition: all 0.2s;
}
.majun-cf7-wrap input:focus,
.majun-cf7-wrap select:focus,
.majun-cf7-wrap textarea:focus {
	outline: none;
	border-color: oklch(var(--primary-400));
	box-shadow: 0 0 0 2px oklch(var(--primary-400) / 0.3);
}
.majun-cf7-wrap input[type="submit"] {
	width: 100%;
	background: oklch(var(--primary-500));
	color: oklch(var(--background-50));
	font-weight: 500;
	padding: 0.75rem;
	border-radius: 0.375rem;
	border: none;
	font-size: 0.875rem;
	cursor: pointer;
	transition: all 0.2s;
}
.majun-cf7-wrap input[type="submit"]:hover { background: oklch(var(--primary-600)); }
.majun-cf7-wrap .wpcf7-not-valid-tip { color: #dc2626; font-size: 0.75rem; margin-top: 0.25rem; }
.majun-cf7-wrap .wpcf7-response-output { border-radius: 0.375rem; font-size: 0.8rem; padding: 0.75rem; margin-top: 1rem; }

/* モバイルメニュー */
#majun-mobile-menu.is-open { display: block; }
