body {
	font-family: "Noto Sans JP", sans-serif;
}

.u-desktop {
	display: none;
}

/* リキッドレイアウト対応 */

html {
	font-size: 16px;
}

/* --------------------------------------------
/* ページ内リンクのスムーススクロール対応
/* -------------------------------------------- */

#scene,
#function,
#features,
#contact,
#faq-account,
#faq-widget,
#faq-trouble,
#faq-media,
#faq-layout,
#faq-manual,
#faq-uncategorized,
#faq-materials {
	scroll-margin-top: 5rem; /* ヘッダーの高さ（SP） */
}

/* ============================================
   RESET CSS + アクセシビリティ対応
   ============================================ */

/* 全要素を border-box に統一（余計なサイズ計算を避ける） */

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

/* デフォルトの余白をリセット */

body,
h1,
h2,
h3,
h4,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

ul,
ol {
	list-style: none; /* 必要な場合は個別に list-style を戻す */
	padding: 0;
}

/* スクロール挙動を滑らかに（ユーザー体験改善） */

html {
	scroll-behavior: smooth;
}

/* 本文の基本設定 */

body {
	font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
	line-height: 1.5; /* 読みやすい行間 */
	min-height: 100vh;
	text-rendering: optimizeLegibility; /* 字形を見やすく */
}

/* リンクの基本リセット */

a {
	-webkit-text-decoration: none;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
}

/* ホバー・アクティブ状態 */

a:hover,
a:active {
	-webkit-text-decoration: none;
	color: inherit;
	text-decoration: none;
}

/* フォーカス状態（アクセシビリティ） */

a:focus-visible {
	outline: 2px solid #3498db;
	outline-offset: 2px;
}

/* 画像は親要素の幅にフィットさせる */

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

/* 記事内要素の間隔を自動で確保 */

article > * + * {
	margin-top: 1em;
}

/* ============================================
   フォーム要素リセット
   ============================================ */

/* フォントを継承・不要なデフォルト装飾を外す */

input,
button,
select,
textarea {
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	margin: 0;
	padding: 0;
}

/* appearance: none は必要なものだけに限定 */

.input-text,
.input-email,
.input-tel,
.textarea-box {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

/* フォーカスリングは必ず残す（outline: none は禁止） */

:focus-visible {
	outline: 2px solid #3498db; /* キーボード操作用の青枠 */
	outline-offset: 2px;
}

/* ボタンやセレクトボックスはカーソルを pointer に */

input[type=submit],
input[type=button],
button,
select,
label {
	cursor: pointer;
}

/* 無効状態をわかりやすく */

input[disabled],
button[disabled] {
	cursor: not-allowed;
	opacity: 0.6;
}

/* テキストエリアは縦方向のみリサイズ可能に */

textarea {
	resize: vertical;
}

/* ============================================
   アクセシビリティ対応
   ============================================ */

/* スキップリンク（キーボードユーザー用） */

.skip-link {
	-webkit-text-decoration: none;
	background: #000;
	color: #fff;
	left: 6px;
	padding: 8px;
	position: absolute;
	text-decoration: none;
	top: -40px;
	z-index: 1000;
}

.skip-link:focus {
	top: 6px;
}

/* 必須フィールドをラベルにマーク表示 */

label.required::after {
	color: #e74c3c;
	content: " *";
}

/* エラーメッセージのスタイル */

.error-message {
	color: #e74c3c;
	font-size: 0.9em;
}

/* エラー状態は入力中にだけ強調 */

/* ラジオ・チェックボックスは視覚的に隠すが、スクリーンリーダーでは有効 */

input[type=radio],
input[type=checkbox] {
	clip: rect(0 0 0 0);
	border: 0;
	height: 1px;
	margin: -1px;
	opacity: 0;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* 代替UI（label側）にフォーカスリングを表示 */

input[type=radio]:focus + label,
input[type=checkbox]:focus + label {
	outline: 2px solid #3498db;
	outline-offset: 2px;
}

/* ============================================
   fieldset / legend リセット（フォーム枠の完全解除）
   ============================================ */

fieldset {
	border: 0;
	margin: 0;
	min-width: 0; /* Firefoxの横ズレ防止 */
	padding: 0;
}

legend {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
}

.page-faq {
	margin-top: 2.5rem;
}

.page-manual {
	margin-top: 2.5rem;
}

.page-manual__inner.page-inner {
	padding-bottom: 3rem;
}

.page-manual__item-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
	list-style: none;
	margin-top: 1.25rem;
	padding: 0;
}

.page-privacy {
	margin-top: 2.5rem;
}

.page-privacy__inner.page-inner {
	padding-bottom: 7rem;
}

.page-security {
	margin-top: 2.5rem;
}

.page-template-page-security .page-security {
	margin-top: 2.5rem;
}

.page-security__inner.page-inner {
	padding-bottom: 7rem;
}

.top__fv {
	margin-top: 5rem;
}

.top__scene {
	margin-top: 8.4375rem;
}

.breadcrumb {
	background-color: #F1F5F9;
	padding: 0.625rem 0;
}

.breadcrumb__list {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.breadcrumb__item {
	align-items: center;
	display: flex;
}

.breadcrumb__item:not(:last-child)::after {
	color: #666;
	content: ">";
	font-size: 0.875rem;
	margin-left: 0.5rem;
}

.breadcrumb__link,
.breadcrumb__current {
	-webkit-text-decoration: none;
	color: #666;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.5;
	text-decoration: none;
	transition: color 0.3s ease;
}

.breadcrumb__link:hover {
	color: #4D976C;
	transform: scale(1.2);
}

.breadcrumb__home-icon {
	-o-object-fit: contain;
	height: 1.25rem;
	object-fit: contain;
	width: 1.25rem;
}

.button {
	align-items: center;
	background: linear-gradient(to bottom, #5fae7f 0%, #4D976C 100%);
	border: 1px solid transparent;
	border-radius: 2.5rem;
	display: inline-flex;
	gap: 1.25rem;
	justify-content: center;
	padding: 0.75rem 0;
	transition: background-color 0.3s, color 0.3s;
	width: 12.5rem;
}

.button:hover {
	background: #fff;
	border: 1px solid #4D976C;
}

.button:hover .button__text {
	color: #4D976C;
}

.button__icon {
	align-items: center;
	display: flex;
	height: 1.625rem;
	justify-content: center;
	width: 1.625rem;
}

.button__icon img {
	-o-object-fit: contain;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.button__text {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.7142857143;
}

/* --------------------------------------------
/* top-fvのボタン
/* -------------------------------------------- */

.top-fv-button.button {
	padding: 1.375rem 0;
	width: 21.875rem;
}

.top-fv-button.button .button__icon {
	height: 2.1875rem;
	width: 2.1875rem;
}

.top-fv-button.button .button__text {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.7777777778;
}

.top-fv-button.button:hover .button__text {
	color: #4D976C;
}

/* --------------------------------------------
/* マニュアルページのボタン
/* -------------------------------------------- */

.manual-button {
	background-color: #fff;
	border: 0.09375rem solid #4D976C;
	border-radius: 2.5rem;
	color: #4D976C;
	display: inline-block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	padding: 0.625rem 1.25rem;
	text-align: center;
	transition: all 0.3s ease;
}

.manual-button:hover {
	background-color: #4D976C;
	color: #fff;
}

/* --------------------------------------------
/* faq-contactのボタン
/* -------------------------------------------- */

.faq-contact-button.button {
	padding: 1.375rem 0;
	width: 21.875rem;
}

.faq-contact-button.button .button__icon {
	height: 2.1875rem;
	width: 2.1875rem;
}

.faq-contact-button__text {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.7777777778;
}

.faq-contact-button.button:hover .faq-contact-button__text {
	color: #4D976C;
}

/* --------------------------------------------
/* submitボタン
/* -------------------------------------------- */

.submit-button.button {
	background-color: #4D976C;
	border: 1px solid #4D976C;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.7142857143;
	padding: 0.625rem 2rem;
	transition: background-color 0.3s, color 0.3s;
	width: 12.5rem;
}

.submit-button:hover {
	background-color: #fff;
	color: #4D976C;
}

/* --------------------------------------------
/* ページトップボタン
/* -------------------------------------------- */

.pagetop-button {
	align-items: center;
	background-color: #fff;
	border: 2px solid #4D976C;
	border-radius: 50%;
	bottom: 1.25rem;
	display: flex;
	height: 3.125rem;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	right: 1.25rem;
	transition: background-color 0.3s, transform 0.3s, border-color 0.3s;
	transition: opacity 0.3s, visibility 0.3s, background-color 0.3s, transform 0.3s;
	visibility: hidden;
	width: 3.125rem;
	z-index: 100;
}

.pagetop-button.is-show {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.pagetop-button.is-hide {
	opacity: 0;
	visibility: hidden;
}

.pagetop-button__icon {
	display: block;
	height: 1.5rem;
	position: relative;
	width: 1.5rem;
}

.pagetop-button__icon::before {
	border-left: 2px solid #4D976C;
	border-top: 2px solid #4D976C;
	content: "";
	height: 0.875rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -25%) rotate(45deg);
	transition: border-color 0.3s;
	width: 0.875rem;
}

.pagetop-button:hover {
	background-color: #d8eee5;
	border-color: #d8eee5;
}

.compliance-list__item:not(:first-child) {
	margin-top: 1.25rem;
}

.compliance-list__subtitle {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 600;
	line-height: 2;
	padding-left: 1.25rem;
	position: relative;
}

.compliance-list__subtitle::before {
	content: "・";
	left: 0;
	position: absolute;
}

.compliance-list__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 2;
	margin-top: 0.5rem;
	padding-left: 1.25rem;
}

.compliance__subtitle {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 2;
}

.compliance__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 2;
}

.compliance__list {
	margin-top: 1.25rem;
	padding-left: 1.25rem;
}

.contact-form__fieldset {
	background-color: #F1F5F9;
	border: none;
	border-radius: 1rem;
	padding: 2.5rem 0.9375rem;
}

.contact-form__legend {
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
}

.contact-form__row {
	margin-top: 1.25rem;
}

.contact-form__legend + .contact-form__row {
	margin-top: 0;
}

.contact-form__label {
	align-items: center;
	display: inline-flex;
	gap: 0.5rem;
}

.contact-form__label-text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.7142857143;
}

.contact-form__label--textarea .contact-form__required {
	margin-top: 0.25rem;
}

.contact-form__required {
	background-color: #4D976C;
	border-radius: 1rem;
	color: #fff;
	display: inline-block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.625rem;
	font-weight: 400;
	line-height: 1.5;
	padding: 0 0.625rem;
}

.contact-form__input {
	background-color: #fff;
	border: 1px solid #dcdcdc;
	border-radius: 0.5rem;
	color: #000;
	font-size: 0.875rem;
	margin-top: 0.5rem;
	padding: 0.625rem 1.25rem;
	width: 100%;
}

.contact-form__input::-moz-placeholder {
	color: #b4b4b4;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.7142857143;
}

.contact-form__input::placeholder {
	color: #b4b4b4;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.7142857143;
}

.contact-form__textarea {
	background-color: #fff;
	border: 1px solid #dcdcdc;
	border-radius: 0.5rem;
	color: #000;
	font-size: 0.875rem;
	margin-top: 0.5rem;
	padding: 0.625rem 1.25rem;
	resize: vertical;
	width: 100%;
}

.contact-form__textarea::-moz-placeholder {
	color: #b4b4b4;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.7142857143;
}

.contact-form__textarea::placeholder {
	color: #b4b4b4;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.7142857143;
}

.contact-form__input:focus,
.contact-form__textarea:focus {
	border-color: #4D976C;
	outline: none;
}

.contact-form__privacy-policy {
	margin-top: 2.5rem;
	text-align: center;
}

.contact-form__checkbox {
	align-items: center;
	display: flex;
	justify-content: center;
	padding-bottom: 1.5rem;
	position: relative;
}

.contact-form__checkbox-input {
	opacity: 0;
	position: absolute;
}

.contact-form__checkbox-label {
	align-items: flex-start;
	color: #000;
	cursor: pointer;
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	padding-left: 2rem;
	position: relative;
}

.contact-form__checkbox-label input[type=checkbox] {
	flex-shrink: 0;
	margin-top: 0.3em;
}

.contact-form__checkbox-label::before {
	background-color: #fff;
	border: 1px solid #999999;
	border-radius: 0.25rem;
	content: "";
	height: 1.25rem;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: border-color 0.2s ease, background-color 0.2s ease;
	width: 1.25rem;
}

.contact-form__checkbox-label::after {
	border-bottom: 3px solid #4D976C;
	border-left: 3px solid #4D976C;
	content: "";
	height: 0.375rem;
	left: 0.25rem;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-60%) rotate(-45deg);
	transition: opacity 0.2s ease;
	width: 0.75rem;
}

/* ======================================
   ✅ checked 状態（CF7対応）
====================================== */

.contact-form__checkbox-label:has(.contact-form__checkbox-input:checked)::before {
	border-color: #4D976C;
}

.contact-form__checkbox-label:has(.contact-form__checkbox-input:checked)::after {
	opacity: 1;
}

/* ======================================
   ✅ フォーカス時（キーボード操作）
====================================== */

.contact-form__checkbox-label:has(.contact-form__checkbox-input:focus-visible)::before {
	outline: 2px solid #4D976C;
	outline-offset: 0.125rem;
}

.contact-form__checkbox-label .contact-form__privacy-link {
	-webkit-text-decoration: underline;
	color: #4D976C;
	display: inline-block;
	text-decoration: underline;
	transition: opacity 0.3s ease;
}

.contact-form__checkbox-label .contact-form__privacy-link:hover {
	color: #3d7a56;
	transform: scale(1.05);
}

.contact-form__button {
	margin-top: 1.375rem;
	text-align: center;
}

.wpcf7-not-valid-tip {
	display: block;
	font-size: 0.875rem;
	line-height: 1.4;
	margin-top: 0.25rem;
}

.contact-form__checkbox .wpcf7-not-valid-tip {
	left: 0;
	margin-top: 0.25rem;
	position: absolute;
	text-align: left;
	top: 100%;
	white-space: normal;
	width: 100%;
}

.wpcf7-response-output {
	font-size: 0.875rem;
	margin-top: 2rem;
}

.wpcf7-form.invalid .contact-form__button {
	margin-top: 1.5rem;
}

.wpcf7-form-control.wpcf7-acceptance .wpcf7-list-item {
	margin-left: 0;
}

.wpcf7-spinner {
	display: none !important;
}

.faq-answer {
	display: flex;
	gap: 1rem;
}

.faq-answer__label {
	color: #9CA3AF;
	flex-shrink: 0;
	font-family: "Inter", sans-serif;
	font-size: 1.875rem;
	font-weight: 400;
	line-height: 1;
}

.faq-answer__body {
	flex: 1;
	overflow: hidden;
}

.faq-answer__body p,
.faq-answer__body li {
	color: #000;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.6;
}

.faq-answer__body p {
	margin-top: 1rem;
}

.faq-answer__body p:first-child {
	margin-top: 0;
}

.faq-answer__body h3,
.faq-answer__body h4,
.faq-answer__body .faq-answer__title {
	color: #000;
	display: block;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.6;
	margin-top: 2rem;
}

.faq-answer__body h3:first-child,
.faq-answer__body h4:first-child,
.faq-answer__body .faq-answer__title:first-child {
	margin-top: 0;
}

.faq-answer__body strong,
.faq-answer__body b {
	font-weight: 600;
}

.faq-answer__body a {
	-webkit-text-decoration: underline;
	color: #4D976C;
	text-decoration: underline;
	word-break: break-all;
}

.faq-answer__body a:hover {
	-webkit-text-decoration: none;
	text-decoration: none;
}

.faq-answer__body ul,
.faq-answer__body ol {
	margin-top: 1rem;
	padding-left: 1.5rem;
}

.faq-answer__body ul:first-child,
.faq-answer__body ol:first-child {
	margin-top: 0;
}

.faq-answer__body ul li,
.faq-answer__body ol li {
	margin-top: 0.5rem;
}

.faq-answer__body ul li:first-child,
.faq-answer__body ol li:first-child {
	margin-top: 0;
}

.faq-answer__body ul {
	list-style: disc;
}

.faq-answer__body ol {
	list-style: decimal;
}

.faq-answer__body ol li {
	margin-top: 1.25rem;
}

.faq-answer__body ol li:first-child {
	margin-top: 0;
}

.faq-answer__body ol li::marker {
	font-weight: 600;
}

.faq-answer__body ol li p {
	font-size: 0.9375rem;
	margin-top: 0.5rem;
}

.faq-answer__body img {
	height: auto !important;
	max-width: 100% !important;
	width: 100% !important;
}

.faq-answer__body img {
	border-radius: 0.5rem;
	display: block;
	margin: 1.5rem auto;
}

.faq-answer__body p:has(img) {
	line-height: 0;
	margin-top: 1.5rem;
}

.faq-answer__body iframe {
	aspect-ratio: 16/9;
	margin: 1.5rem 0;
	width: 100%;
}

.faq-answer__body .faq-answer__link,
.faq-answer__body a[href$=".pdf"] {
	display: inline-block;
	font-weight: 600;
	margin-top: 1rem;
}

.faq-answer__body ul + h3,
.faq-answer__body ul + h4,
.faq-answer__body ol + h3,
.faq-answer__body ol + h4,
.faq-answer__body p + h3,
.faq-answer__body p + h4 {
	margin-top: 2.5rem;
}

.faq-answer__body > *:last-child {
	margin-bottom: 0;
}

.faq-category-nav {
	margin-top: 4rem;
}

.faq-category-nav__title {
	color: #4D976C;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: 1.5rem;
}

.faq-category-nav__list {
	grid-gap: 0.75rem;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(2, 1fr);
	list-style: none;
}

.faq-category-nav__link {
	-webkit-text-decoration: none;
	align-items: center;
	background-color: #fff;
	border: 0.0625rem solid rgba(77, 151, 108, 0.5);
	border-radius: 0.5rem;
	box-shadow: 0 0.125rem 0.375rem rgba(0, 0, 0, 0.2);
	color: #4D976C;
	display: flex;
	font-size: 0.875rem;
	font-weight: 500;
	height: 3.5rem;
	justify-content: center;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
	position: relative;
	text-decoration: none;
	transition: all 0.2s ease;
}

.faq-category-nav__link::after {
	border-right: 0.125rem solid #4D976C;
	border-top: 0.125rem solid #4D976C;
	content: "";
	height: 0.375rem;
	position: absolute;
	right: 0.75rem;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	transition: right 0.2s ease;
	width: 0.375rem;
}

.faq-category-nav__link:hover {
	background-color: rgba(77, 151, 108, 0.08);
	border-color: #4D976C;
}

.faq-category-nav__link:focus-visible {
	outline: 0.125rem solid #4D976C;
	outline-offset: 0.125rem;
}

.faq-contact {
	margin-bottom: 3rem;
	margin-top: 5rem;
}

.faq-contact__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.875;
	text-align: center;
}

.faq-contact__button {
	margin-top: 2.5rem;
	text-align: center;
}

.faq-item {
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
	margin-top: 1.5rem;
	overflow: hidden;
}

.faq-item__question,
.faq-item__answer {
	align-items: flex-start;
	background: none;
	border: none;
	display: flex;
	gap: 1rem;
	padding-bottom: 1rem;
	padding-left: 1rem;
	padding-right: 2.5rem;
	padding-top: 1rem;
	text-align: left;
	width: 100%;
}

.faq-item__question {
	border-left: 0.25rem solid #4D976C;
	position: relative;
}

.faq-item__answer {
	border-left: 0.25rem solid #9CA3AF;
	display: none;
}

.faq-item.is-open .faq-item__answer {
	display: flex;
}

/* --------------------------------------------
/* 初期は3件表示、もっと見るをクリックしたら残りを表示させる
/* -------------------------------------------- */

.faq-item.is-hidden {
	display: none;
}

.faq-section__more.is-hidden {
	display: none;
}

.faq-materials-card {
	text-align: center;
}

.faq-materials-card__link {
	-webkit-text-decoration: none;
	background-color: #f2f8f5;
	border: 2px solid #4D976C;
	border-radius: 0.5rem;
	display: block;
	padding: 2.5rem 1.5rem;
	text-decoration: none;
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.faq-materials-card__content {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.faq-materials-card__icon {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	height: 2rem;
	width: 2rem;
}

.faq-materials-card__icon img {
	-o-object-fit: contain;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.faq-materials-card__text {
	color: #4D976C;
	flex: 1;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.5;
	text-align: left;
}

.faq-materials-card__arrow {
	flex-shrink: 0;
	height: 1rem;
	position: relative;
	width: 1rem;
}

.faq-materials-card__arrow::after {
	border-right: 2px solid #4D976C;
	border-top: 2px solid #4D976C;
	content: "";
	height: 0.5rem;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
	transition: transform 0.2s ease;
	width: 0.5rem;
}

.faq-materials-card__link:hover,
.faq-materials-card__link:focus-visible {
	background-color: #d8eee5;
	box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
	transform: scale(1.03);
}

.faq-materials-card__link:hover .faq-materials-card__arrow::after,
.faq-materials-card__link:focus-visible .faq-materials-card__arrow::after {
	transform: translate(0.25rem, -50%) rotate(45deg);
}

.faq-more-button {
	align-items: center;
	background-color: #fff;
	border: 1px solid #4D976C;
	border-radius: 62.4375rem;
	color: #4D976C;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.875rem;
	font-weight: 400;
	justify-content: center;
	letter-spacing: 0.04em;
	min-width: 12.5rem;
	padding: 0.875rem 1.5rem;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.faq-more-button__count {
	margin: 0 0.2em;
}

.faq-question__label {
	color: #4D976C;
	flex-shrink: 0;
	font-family: "Inter", sans-serif;
	font-size: 1.875rem;
	font-weight: 400;
	line-height: 1;
}

.faq-question__text {
	color: #000;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.6;
}

.faq-question__icon {
	height: 1rem;
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1rem;
}

.faq-question__icon::before {
	background-color: #000;
	content: "";
	height: 0.125rem;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
}

.faq-question__icon::after {
	background-color: #000;
	content: "";
	height: 100%;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	transition: transform 0.6s ease;
	width: 0.125rem;
}

.faq-item__question[aria-expanded=true] .faq-question__icon::after {
	transform: translateX(-50%) rotate(90deg);
}

.faq-section {
	margin-top: 4rem;
}

.faq-section__title {
	border-bottom: 0.125rem solid #4D976C;
	color: #4D976C;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.4;
	padding-bottom: 0.75rem;
	padding-left: 1rem;
	position: relative;
}

.faq-section__title::before {
	background-color: #4D976C;
	border-radius: 0.125rem;
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 0.25rem;
}

.faq-section__list {
	margin-top: 1.5rem;
}

.faq-section__more {
	margin-top: 1.5rem;
	text-align: center;
}

.feature-card__image {
	aspect-ratio: 345/235;
	margin-left: auto;
	margin-right: auto;
	width: 65%;
}

.feature-card__image img {
	-o-object-fit: contain;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.feature-card__body {
	margin-top: 1.25rem;
	text-align: center;
}

.feature-card__title {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.6;
}

.feature-card__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
	margin-top: 1rem;
}

.features-list {
	grid-gap: 2.5rem;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr;
}

.footer-nav__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}

.footer-nav__item {
	margin-top: 0;
}

.footer-nav__item--privacy {
	grid-column: 2;
}

.footer-nav__link {
	-webkit-text-decoration: none;
	color: #fff;
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.7857142857;
	padding: 0.9375rem 0;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.footer-nav__link:hover {
	color: #fff;
	opacity: 0.7;
	transform: scale(1.02);
}

.footer {
	background-color: #222c34;
}

.footer__inner {
	padding-top: 2.3125rem;
}

.footer__logo {
	height: 2.0625rem;
	margin-left: max(-1.5rem, min(-2vw, -0.625rem));
	width: 10rem;
}

.footer__logo a {
	display: block;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.footer__logo a:hover {
	opacity: 0.7;
	transform: scale(1.05);
}

.footer__nav {
	margin-top: 2.5rem;
}

.footer__copyright {
	border-top: 1px solid #fff;
	margin: 0 calc(50% - 50vw);
	margin-top: 5rem;
	padding: 1.375rem calc(50vw - 50%) 1.9375rem;
	text-align: right;
	width: 100vw;
}

.footer__copyright-text {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.6875rem;
	font-weight: 400;
	line-height: 2.1818181818;
}

.function-card {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 2.25rem;
	height: 100%;
}

.function-card__image {
	align-items: center;
	aspect-ratio: 1/1;
	background-color: #F1F5F9;
	border-radius: 50%;
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	position: relative;
	width: 10.8125rem;
}

.function-card__number {
	color: #4D976C;
	display: inline-block;
	font-family: "Inter", sans-serif;
	font-size: 2.1875rem;
	font-weight: 400;
	left: 0;
	line-height: 1;
	margin-top: 0;
	position: absolute;
	top: 0;
}

.function-card__number::before {
	content: counter(function-card, decimal-leading-zero);
}

.function-card__number::after {
	background-color: #4D976C;
	bottom: 0;
	content: "";
	display: block;
	height: 1px;
	left: 0;
	position: absolute;
	width: 100%;
}

.function-card__image img {
	-o-object-fit: contain;
	height: 52.0231213873%;
	object-fit: contain;
	width: 52.0231213873%;
}

.function-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.function-card__title {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.5555555556;
}

.function-card__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.75;
	margin-top: 1.25rem;
}

.function-cards {
	grid-gap: 2.5rem;
	align-items: stretch;
	counter-reset: function-card;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr;
}

.function-cards__item {
	counter-increment: function-card;
}

.hamburger__line01 {
	background-color: #000;
	display: block;
	height: 0.125rem;
	left: 0;
	position: absolute;
	top: 0.375rem;
	transition: all 0.3s ease;
	width: 100%;
}

.hamburger__line02 {
	background-color: #000;
	display: block;
	height: 0.125rem;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease;
	width: 100%;
}

.hamburger__line03 {
	background-color: #000;
	bottom: 0.375rem;
	display: block;
	height: 0.125rem;
	left: 0;
	position: absolute;
	transition: all 0.3s ease;
	width: 100%;
}

.header__hamburger.is-active .hamburger__line01 {
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
}

.header__hamburger.is-active .hamburger__line02 {
	opacity: 0;
}

.header__hamburger.is-active .hamburger__line03 {
	bottom: auto;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
}

.header {
	background-color: #fff;
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.1);
	height: 5rem;
	left: 0;
	max-width: 100%;
	position: fixed;
	top: 0;
	transition: all 0.3s ease;
	width: 100%;
	z-index: 100;
}

.header__inner {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: space-between;
	margin-left: auto;
	margin-right: auto;
	max-width: 120rem;
	padding: 0 0.9375rem;
}

.header__logo {
	height: 2.25rem;
	width: 12.5rem;
}

.header__logo a {
	display: block;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.header__logo a:hover {
	opacity: 0.7;
	transform: scale(1.05);
}

.header__logo img {
	-o-object-fit: contain;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.header__sp-nav {
	background-color: #fff;
	height: calc(100vh - 5rem);
	left: 0;
	opacity: 0;
	overflow: scroll;
	padding: 2.5rem;
	position: absolute;
	right: 0;
	top: 0;
	top: 5rem;
	transform: translateX(100%);
	transition: transform 0.8s ease, opacity 0.8s ease, visibility 0s linear 0.8s;
	visibility: hidden;
	width: 100%;
	z-index: 9;
}

.header__sp-nav.is-active {
	opacity: 1;
	transform: translateX(0);
	transition: transform 0.8s ease, opacity 0.8s ease, visibility 0s linear 0s;
	visibility: visible;
}

.header__pc-nav {
	margin-left: auto;
}

.header__button {
	display: none;
}

.header__hamburger {
	background: transparent;
	border: none;
	cursor: pointer;
	height: 1.875rem;
	padding: 0;
	position: relative;
	width: 1.875rem;
}

.inner {
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
	width: 100%;
}

.faq-materials {
	text-align: center;
}

.faq-materials__inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 37.5rem;
	width: 100%;
}

.no-results p {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
}

.no-results__keyword {
	color: #4D976C;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.5;
}

.other-function-card {
	background-color: #F1F5F9;
	border-radius: 1rem;
	padding-bottom: 2.5rem;
	padding-top: 2.375rem;
}

.other-function-card__image {
	align-items: center;
	aspect-ratio: 1/1;
	background-color: #fff;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	margin: 0 auto;
	width: 5.625rem;
}

.other-function-card__image img {
	-o-object-fit: contain;
	height: 50%;
	object-fit: contain;
	width: 50%;
}

.other-function-card__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	margin-top: 1rem;
	text-align: center;
}

.other-function-cards {
	grid-gap: 2.5rem;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr;
}

.other-functions__title {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.other-functions__list {
	margin-top: 2.5rem;
}

.page-fv {
	background: linear-gradient(to bottom, #5fae7f 0%, #4D976C 100%);
	margin-top: 5rem;
	padding: 3.75rem 0;
}

.page-fv__title {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.75rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.page-inner {
	margin-left: auto;
	margin-right: auto;
	max-width: 80rem;
	padding: 0 1rem;
}

.page-search__form {
	display: flex;
	gap: 0.5rem;
	margin-left: auto;
	margin-right: auto;
	margin-top: 1.25rem;
	max-width: 37.5rem;
}

.page-search__input {
	background-color: #fff;
	border: 1px solid #cccccc;
	border-radius: 0.25rem;
	color: #111;
	flex: 1;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	padding: 0.875rem 1rem;
}

.page-search__button {
	background-color: #4D976C;
	border: none;
	border-radius: 0.25rem;
	padding: 0.875rem 1.5rem;
}

.page-search__button-text {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
}

.page-section.page-search.page-search--faq {
	margin-top: 2.5rem;
}

.page-section:not(:first-child) {
	margin-top: 5rem;
}

.page-section__title {
	background: linear-gradient(to bottom, #5fae7f 0%, #4D976C 100%);
	border-radius: 0.25rem;
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.5;
	padding: 0.625rem 1.25rem;
	text-align: center;
}

.page-section__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 2;
	margin-top: 1.25rem;
}

.pc-nav {
	height: inherit;
}

.pc-nav__list {
	align-items: center;
	display: flex;
	height: inherit;
}

.pc-nav__item {
	height: inherit;
}

.pc-nav__link {
	align-items: center;
	color: #000;
	display: flex;
	flex-direction: column;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	height: inherit;
	justify-content: center;
	line-height: 1.75;
	padding: 0 1.25rem;
	position: relative;
	transition: color 0.3s ease;
}

.pc-nav__link::after {
	background-color: #4D976C;
	bottom: 1.875rem;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.3s ease;
	width: 100%;
}

.pc-nav__link:hover {
	color: #4D976C;
}

.pc-nav__link:hover::after {
	transform: scaleX(1);
}

.personal-info-protection__compliance {
	margin-top: 1.25rem;
	padding-left: 1.25rem;
}

.personal-info-purpose__list {
	list-style: disc;
	margin-top: 1.25rem;
	padding-left: 1.25rem;
}

.personal-info-purpose__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 2;
}

.scene-card {
	background-color: #fff;
	border-radius: 1rem;
	box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.08);
	display: flex;
	flex-direction: column;
	padding: 1.25rem;
}

.scene-card__heading {
	align-items: center;
	display: flex;
	gap: 0.625rem;
}

.scene-card__number {
	color: #4D976C;
	font-family: "Inter", sans-serif;
	font-size: 2.5rem;
	font-weight: 300;
	line-height: 1;
}

.scene-card__title {
	color: #4D976C;
	font-family: "Inter", sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.75;
	text-transform: uppercase;
}

.scene-card__image {
	align-items: center;
	aspect-ratio: 3/4;
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	margin-top: 1.25rem;
	max-height: 8.75rem;
	width: 100%;
}

.scene-card__image img {
	-o-object-fit: contain;
	height: auto;
	margin-left: auto;
	margin-right: auto;
	max-height: 85%;
	max-width: 85%;
	object-fit: contain;
	width: auto;
}

.scene-card__body {
	flex-grow: 1;
}

.scene-card__subtitle {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.5;
}

.scene-card__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
}

.scene-grid {
	grid-gap: 2.5rem;
	display: grid;
	gap: 2.5rem;
	grid-template-columns: 1fr;
}

.scene-center--title {
	text-align: center;
}

.scene-center--image {
	align-items: center;
	display: flex;
	justify-content: center;
}

.top-scene__image {
	width: 100%;
}

.top-scene__image img {
	display: block;
	height: auto;
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
}

.search-results__no-results {
	margin-top: 2.5rem;
	text-align: center;
}

.search-results__back {
	margin-top: 2.5rem;
	text-align: center;
}

.search-results__back-link {
	color: #4D976C;
	display: inline-block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	padding-bottom: 0.5rem;
	padding-left: 1.25rem;
	position: relative;
}

.search-results__back-link:hover {
	color: #4D976C;
}

.search-results__back-link::before {
	content: "←";
	left: 0;
	padding-bottom: 0.5rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: transform 0.3s ease;
}

.search-results__back-link:hover::before {
	transform: translate(-8px, -50%);
}

.search-results__back-link::after {
	background-color: #4D976C;
	bottom: 0;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.3s ease;
	width: 100%;
}

.search-results__back-link:hover::after {
	color: #4D976C;
	transform: scaleX(1);
}

.section-title {
	color: #4D976C;
	font-family: "Inter", sans-serif;
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0.15em;
	line-height: 1.7142857143;
	text-align: center;
	text-transform: uppercase;
}

.section-title--white {
	color: #fff;
}

.security-initiatives-list__item:not(:first-child) {
	margin-top: 2.5rem;
}

.security-initiatives-list__title {
	color: #4D976C;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5555555556;
	padding-bottom: 0.5rem;
	padding-left: 1rem;
	position: relative;
}

.security-initiatives-list__title::before {
	background-color: #4D976C;
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 0.25rem;
}

.security-initiatives-list__title::after {
	background-color: #4D976C;
	bottom: 0;
	content: "";
	height: 0.125rem;
	left: 0;
	position: absolute;
	width: 100%;
}

.security-initiatives-list__description {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.75;
	margin-top: 0.5rem;
}

.security-initiatives-list__list {
	margin-top: 1.25rem;
}

.security-initiatives-list__list-item:not(:first-child) {
	margin-top: 0.5rem;
}

.security-initiatives-list__list-item p {
	align-items: flex-start;
	display: flex;
	font-size: 1rem;
	gap: 0.5rem;
	line-height: 1.75;
}

/* ハイフン部分 */

.security-initiatives-list__list-item p::before {
	content: "–";
	flex-shrink: 0;
}

.security-initiatives__items {
	margin-top: 4.25rem;
}

.sp-nav__list {
	display: flex;
	flex-direction: column;
}

.sp-nav__item {
	height: 100%;
}

.sp-nav__link {
	align-items: center;
	color: #000;
	display: flex;
	flex-direction: column;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	height: inherit;
	justify-content: center;
	line-height: 1.75;
	padding: 1.25rem;
	transition: all 0.3s ease;
}

.sp-nav__button {
	margin-top: 2.5rem;
	text-align: center;
}

.top-contact {
	background-color: #4D976C;
	overflow: hidden;
	padding-bottom: 6rem;
	padding-top: 5rem;
	position: relative;
}

.top-contact::before {
	aspect-ratio: 611/672;
	background-image: url("../images/common/top-contact-bg.png");
	background-position: left center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	filter: brightness(1.2) contrast(1.1);
	height: auto;
	left: max(-8.125rem, min(-10vw, -3.75rem));
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: max(26.25rem, min(32vw, 38.1875rem));
	z-index: 0;
}

.top-contact__inner {
	position: relative;
	z-index: 1;
}

.section-title.section-title--white {
	display: block;
	text-align: center;
}

.top-contact__title {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.5;
	margin-top: 1.25rem;
	text-align: center;
}

.top-contact__lead {
	color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.875;
	margin-top: 1.25rem;
	text-align: center;
}

.top-contact__contact-form {
	margin-left: auto;
	margin-right: auto;
	margin-top: 2rem;
	max-width: 57.5rem;
	width: 100%;
}

.top-features__heading {
	margin-top: 0.625rem;
	text-align: center;
}

.top-features__title {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.5;
}

.top-features__lead {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.875;
	margin-top: 1.25rem;
}

.top-features__features {
	margin-top: 2.5rem;
}

.top-function {
	background-color: #fff;
	background-image: repeating-linear-gradient(to right, rgba(220, 220, 220, 0.2) 0, rgba(220, 220, 220, 0.2) 1px, transparent 1px, transparent 15rem), repeating-linear-gradient(to bottom, rgba(220, 220, 220, 0.2) 0, rgba(220, 220, 220, 0.2) 1px, transparent 1px, transparent 15rem);
	padding-bottom: 6rem;
	padding-top: 5rem;
}

.top-function__heading {
	margin-left: auto;
	margin-right: auto;
	margin-top: 1.25rem;
	text-align: center;
}

.top-function__title {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.5;
	text-align: center;
}

.top-function__function {
	margin-top: 5rem;
}

.top-function__other-functions {
	margin-top: 5rem;
}

.top-fv {
	background: linear-gradient(to bottom, #e9f1f4 0%, #ffffff 100%);
	background-position: top;
	background-repeat: no-repeat;
	background-size: 100% 35%;
	overflow-x: hidden;
	overflow-y: visible;
	padding: 5rem 0;
}

.top-fv__inner {
	display: flex;
	flex-direction: column;
}

.top-fv__content-wrapper {
	display: flex;
	flex-direction: column;
	order: 1;
}

.top-fv__content {
	order: 1;
}

.top-fv__title {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.5;
}

.top-fv__title--color {
	color: #4D976C;
}

.top-fv__text {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	margin-top: 1.25rem;
}

.top-fv__button {
	margin-top: 2.5rem;
	text-align: center;
}

.top-fv__button--sp {
	display: block;
	order: 3;
}

.top-fv__button--pc {
	display: none;
	order: 2;
}

.top-fv__image {
	aspect-ratio: 345/280;
	margin-top: 2.5rem;
	order: 2;
	width: 100%;
}

.top-fv__image img {
	-o-object-fit: contain;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.top-scene {
	background-color: #F1F5F9;
	padding-bottom: 6rem;
	padding-top: 5rem;
}

.top-scene__title {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

.top-scene__lead {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	margin-top: 1.25rem;
	text-align: center;
}

.top-scene__grid {
	margin-top: 2.5rem;
}

@media screen and (min-width: 600px) {

.function-card {
	align-items: flex-start;
	flex-direction: row;
	gap: 2rem;
}

.other-function-cards {
	grid-template-columns: repeat(2, 1fr);
}

.scene-grid {
	gap: 2rem;
	grid-template-columns: repeat(2, 1fr);
}

}

@media screen and (min-width: 768px) {

.u-desktop {
	display: block;
}

.u-mobile {
	display: none;
}

html {
	font-size: 1.2121212121vw;
}

#scene,
#function,
#features,
#contact,
#faq-account,
#faq-widget,
#faq-trouble,
#faq-media,
#faq-layout,
#faq-manual,
#faq-uncategorized,
#faq-materials {
	scroll-margin-top: 6.25rem; /* ヘッダーの高さ（PC） */
}

.page-manual__inner.page-inner {
	padding-bottom: 5rem;
}

.page-manual__item-list {
	margin-top: 2.5rem;
}

.page-privacy__inner.page-inner {
	padding-bottom: 7.5rem;
}

.page-security__inner.page-inner {
	padding-bottom: 7.5rem;
}

.top__fv {
	margin-top: 6.25rem;
}

.breadcrumb__list {
	gap: 0.75rem;
}

.breadcrumb__item:not(:last-child)::after {
	font-size: 1rem;
	margin-left: 0.75rem;
}

.breadcrumb__link,
.breadcrumb__current {
	font-size: 1rem;
}

.contact-form__fieldset {
	padding: 3.75rem 4.375rem;
}

.contact-form__row {
	display: grid;
	grid-template-columns: 10.625rem 1fr;
}

.contact-form__label--textarea {
	align-items: flex-start;
}

.contact-form__input {
	margin-top: 0;
}

.contact-form__textarea {
	margin-top: 0;
}

.contact-form__checkbox .wpcf7-not-valid-tip {
	white-space: nowrap;
}

.faq-category-nav__title {
	font-size: 1.25rem;
}

.faq-category-nav__list {
	gap: 1rem;
	grid-template-columns: repeat(4, 1fr);
}

.faq-category-nav__link {
	font-size: 0.9375rem;
	height: 4rem;
}

.faq-category-nav__link:hover::after {
	right: 0.5rem;
}

.faq-contact {
	margin-bottom: 5rem;
}

.faq-materials-card__link {
	padding: 2.5rem;
}

.faq-materials-card__text {
	font-size: 1.25rem;
	line-height: 1.5;
}

.faq-more-button {
	font-size: 1rem;
	min-width: 15rem;
}

.faq-more-button:hover {
	background-color: #4D976C;
	color: #fff;
}

.faq-section__title {
	padding-left: 1.25rem;
}

.faq-section__list {
	margin-top: 2rem;
}

.faq-section__more {
	margin-top: 2rem;
}

.feature-card__image {
	aspect-ratio: 274/226;
	width: 65%;
}

.feature-card__body {
	margin-top: 0.625rem;
}

.feature-card__title {
	font-size: 1.375rem;
	line-height: 1.6363636364;
}

.feature-card__text {
	margin-top: 1rem;
}

.features-list {
	gap: 0;
	grid-template-columns: repeat(3, 1fr);
}

.footer-nav__list {
	grid-template-columns: repeat(4, 1fr);
}

.footer-nav__item {
	margin-top: 0;
}

.footer-nav__item--privacy {
	grid-column: 1;
}

.footer-nav__link {
	font-size: 0.875rem;
}

.footer__logo {
	height: 2.625rem;
	width: 12.5rem;
}

.footer__nav {
	margin-top: 0;
	max-width: 37.5rem;
}

.function-card__number {
	font-size: 2.1875rem;
}

.function-card__title {
	font-size: 1.25rem;
	line-height: 1.5;
}

.function-card__text {
	margin-top: 2.375rem;
}

.function-cards {
	gap: 9.375rem 6.25rem;
	grid-template-columns: repeat(2, 1fr);
}

.header {
	height: 6.25rem;
}

.header__inner {
	padding: 0 5rem;
}

.header__button {
	display: block;
	margin-left: 2.5rem;
}

.header__hamburger {
	display: none;
}

.inner {
	max-width: 1360px;
	padding-left: 20px;
	padding-right: 20px;
}

.no-results p {
	font-size: 1.125rem;
}

.no-results__keyword {
	font-size: 1.5rem;
}

.other-function-card__image {
	aspect-ratio: 1/1;
	width: 5.625rem;
}

.other-function-cards {
	grid-template-columns: repeat(5, 1fr);
}

.other-functions__title {
	line-height: 2.9090909091;
}

.other-functions__list {
	margin-top: 1.25rem;
}

.page-fv {
	margin-top: 6.25rem;
}

.page-fv__title {
	font-size: 2rem;
}

.page-section__title {
	font-size: 1.5rem;
}

.scene-card {
	height: 100%;
	padding: 1.875rem 2.5rem 1.875rem 2.5rem;
}

.scene-card__subtitle {
	font-size: 1.5rem;
	line-height: 2.5;
}

.scene-grid {
	-moz-column-gap: 7.5rem;
	align-items: stretch;
	column-gap: 7.5rem;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(3, auto);
	row-gap: 4.375rem;
}

.scene-center--title {
	grid-column: 1/-1;
	grid-row: 1;
}

.scene-center--image {
	grid-column: 2;
	grid-row: 2;
	height: 100%;
	justify-self: center;
	position: relative;
	width: 120%;
	z-index: 10;
}

.top-scene__image {
	height: 100%;
	width: 100%;
}

.top-scene__image img {
	left: 50%;
	max-width: none;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -63%);
	width: 100%;
}

.scene-card:nth-of-type(3) {
	grid-column: 1;
	grid-row: 1;
}

.scene-card:nth-of-type(4) {
	grid-column: 3;
	grid-row: 1;
}

.scene-card:nth-of-type(5) {
	grid-column: 1;
	grid-row: 2;
}

.scene-card:nth-of-type(6) {
	grid-column: 3;
	grid-row: 2;
}

.scene-card:nth-of-type(7) {
	grid-column: 1;
	grid-row: 3;
}

.scene-card:nth-of-type(8) {
	grid-column: 2;
	grid-row: 3;
}

.scene-card:nth-of-type(9) {
	grid-column: 3;
	grid-row: 3;
}

.search-results__no-results {
	margin-top: 5rem;
}

.search-results__back {
	margin-top: 5rem;
}

.search-results__back-link {
	font-size: 1.125rem;
}

.security-initiatives-list__title {
	font-size: 1.25rem;
	line-height: 1.5;
}

.top-contact {
	padding-bottom: 7.8125rem;
	padding-top: 7.125rem;
}

.top-contact__inner {
	align-items: center;
	display: grid;
	grid-template-columns: 25rem 1fr;
	justify-content: flex-start;
}

.section-title.section-title--white {
	text-align: left;
}

.top-contact__title {
	font-size: 2.375rem;
	line-height: 1.3947368421;
	text-align: left;
}

.top-contact__lead {
	text-align: left;
}

.top-contact__contact-form {
	margin-left: 0;
	margin-right: 0;
	margin-top: 0;
	max-width: 100%;
}

.top-features__title {
	font-size: 2.875rem;
	line-height: 1.3913043478;
}

.top-features__lead {
	margin-top: 1.875rem;
}

.top-features__features {
	margin-top: 3.75rem;
}

.top-function {
	padding-bottom: 9.5rem;
	padding-top: 7rem;
}

.top-function__heading {
	margin-top: 1rem;
}

.top-function__title {
	font-size: 2.875rem;
	line-height: 1.3913043478;
}

.top-function__function {
	margin-top: 7.5rem;
}

.top-function__other-functions {
	margin-top: 8rem;
}

.top-fv {
	padding-bottom: 4.6875rem;
	padding-top: 7.125rem;
}

.top-fv__inner {
	align-items: center;
	flex-direction: row;
	justify-content: space-between;
}

.top-fv__content-wrapper {
	align-self: stretch;
	order: 1;
	width: 42%;
}

.top-fv__content {
	order: 1;
}

.top-fv__title {
	font-size: 3.25rem;
	line-height: 1.4615384615;
}

.top-fv__text {
	font-size: 1.125rem;
	line-height: 1.7777777778;
}

.top-fv__button--sp {
	display: none;
}

.top-fv__button--pc {
	display: block;
	margin-top: 4.375rem;
	text-align: left;
}

.top-fv__image {
	aspect-ratio: unset;
	height: 100%;
	margin-top: 0;
	order: 2;
	transform: scale(1.11);
	transform-origin: left center;
	width: 58%;
}

.top-scene {
	padding-bottom: 9.25rem;
	padding-top: 8.25rem;
}

.top-scene__heading {
	margin-top: 1.25rem;
}

.top-scene__title {
	font-size: 2.875rem;
	line-height: 1.3913043478;
}

.top-scene__lead {
	margin-top: 2.5rem;
}

.top-scene__grid {
	margin-top: 0;
}

}

@media (min-width: 1320px) {

html {
	font-size: 16px;
}

}

@media (max-width: 375px) {

html {
	font-size: 4.2666666667vw;
}

}


/*# sourceMappingURL=style.css.map */
