﻿/**
 * New Textorage - Main Styles
 * mobile-first / no nesting / @media (width >= 820px)
 */

/* ===== base.css ===== */

:root {
	--color-text: #333333;
	--color-text-muted: #666666;
	--color-bg: #ffffff;
	--color-primary: #4dbb9b;
	--color-primary-hover: #3da888;
	--color-border: #e8e8e8;
	--font-sans: Verdana, "游ゴシック Medium", "Yu Gothic Medium", YuGothic, "游ゴシック体", sans-serif;
	--font-serif: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
	--font-heading: "見出ゴMB31";
	--font-strong: "新ゴ M";
	--fz-body: clamp(0.9375rem, 0.9rem + 0.15vw, 1.0625rem);
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.25rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-10: 2.5rem;
	--container-pad-x: clamp(1rem, 0.6rem + 1.2vw, 1.5rem);
	--container-max: 1120px;
	--header-height: clamp(4.5rem, 3.2rem + 1vw, 4rem);
	--z-header: 100;
}

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* Lenis smooth scroll */
html.lenis,
html.lenis body {
	height: auto;
}

.lenis.lenis-smooth {
	scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}

body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: var(--fz-body);
	line-height: 1.7;
	color: var(--color-text);
	background-color: var(--color-bg);
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading,
.kp-section-title,
.fp-section-title,
.page-p202301__title,
.page-p202301__h2 {
	font-family: var(--font-heading);
	font-weight: 700;
}

/* 固定ページ：見出し（主に h2 相当）を一回り大きく */
.page .wp-block-heading {
	font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.85rem);
	line-height: 1.35;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

a {
	color: var(--color-primary);
	text-underline-offset: 0.15em;
}

a:hover {
	color: var(--color-primary-hover);
}

/* 標準カラム幅（全ページ共通）。.site-container は後方互換の別名 */
.site-container,
.content-container {
	width: 100%;
	max-width: var(--container-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--container-pad-x);
	padding-right: var(--container-pad-x);
}

.site-main {
	padding-top: var(--space-8);
	padding-bottom: var(--space-10);
}

.u-skip-link {
	position: absolute;
	left: var(--space-4);
	top: var(--space-4);
	z-index: 9999;
	padding: var(--space-2) var(--space-4);
	background: var(--color-primary);
	color: #ffffff;
	text-decoration: none;
	border-radius: 0.25rem;
	transform: translateY(-200%);
	transition: transform 0.2s ease;
}

.u-skip-link:focus {
	transform: translateY(0);
	outline: 2px solid #ffffff;
	outline-offset: 2px;
}

/* ===== 共通ユーティリティ（複数ページで使い回す） ===== */
.u-title-lined {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	white-space: nowrap;
}

.u-title-lined::before,
.u-title-lined::after {
	content: "";
	height: 1px;
	flex: 1;
	max-width: 25vw;
	background: currentColor;
	opacity: 0.35;
}

@media (width < 500px) {
	.u-title-lined::before,
	.u-title-lined::after {
		max-width: 5.5rem;
	}
}

.u-title-lined--light::before,
.u-title-lined--light::after {
	opacity: 0.55;
}

.u-btn-pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	border-radius: 999px;
	text-decoration: none;
	text-align: center;
	line-height: 1.3;
	transition: background-color 0.15s ease, background 0.15s ease, color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

.u-btn-pill:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.sidebar {
	margin-top: 32px;
}

.posts-content {
	min-width: 0;
}

.posts-list-item + .posts-list-item {
	margin-top: var(--space-6);
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border);
}

.sidebar-inner {
	padding: 20px 0;
	border-top: 1px solid var(--color-border);
}

@media (width >= 820px) {
	.site-container--with-sidebar,
	.content-container--with-sidebar {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 380px;
		gap: var(--space-8);
		align-items: start;
	}

	.sidebar {
		margin-top: 0;
	}

	.site-container--with-sidebar .sidebar-inner,
	.content-container--with-sidebar .sidebar-inner {
		margin-top: 0;
		border-top: 0;
		padding: 0 0 0 var(--space-8);
	}
}

.widget {
	margin-bottom: 24px;
}

.widget:last-child {
	margin-bottom: 0;
}

.widget-title {
	margin: 0 0 12px;
	padding-bottom: 10px;
	font-size: 1.125rem;
	font-weight: 700;
	position: relative;
	border-bottom: 1px solid #e5e5e5;
}

.widget-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 28%;
	height: 3px;
	background-color: var(--color-primary);
}

.sidebar-search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sidebar-search-input {
	flex: 1;
	min-width: 0;
	height: 36px;
	padding: 0 10px;
	font-size: 0.875rem;
	border: 1px solid var(--color-border);
	border-radius: 4px;
}

.sidebar-search-submit {
	height: 36px;
	padding: 0 14px;
	font-size: 0.875rem;
	color: var(--color-text);
	background-color: var(--color-border);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	cursor: pointer;
}

.sidebar-recent-posts,
.sidebar-categories,
.sidebar-archives {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sidebar-recent-posts li,
.sidebar-categories li,
.sidebar-archives li {
	margin: 0 0 6px;
}

.sidebar-recent-posts a {
	color: #00aeef;
	text-decoration: none;
	font-size: 0.875rem;
}

.sidebar-recent-posts a:hover {
	color: #008fc4;
	text-decoration: underline;
}

.sidebar-categories li {
	margin: 0 6px 8px 0;
	display: inline-block;
}

.sidebar-categories a {
	display: inline-block;
	padding: 6px 14px;
	font-size: 0.875rem;
	color: #ffffff;
	text-decoration: none;
	background-color: var(--color-primary);
	border-radius: 9999px;
	transition: background-color 0.2s ease;
}

.sidebar-categories a:hover {
	color: #ffffff;
	background-color: var(--color-primary-hover);
}

.sidebar-categories li.cat-item-all a {
	background-color: #ffffff;
	color: var(--color-primary);
	border: 1px solid var(--color-primary);
}

.sidebar-categories li.cat-item-all a:hover {
	background-color: rgba(77, 187, 155, 0.08);
	color: var(--color-primary-hover);
	border-color: var(--color-primary-hover);
}

.widget.widget_categories .widget-title--categories {
	margin-bottom: 0;
	padding-bottom: 0.65rem;
	border-bottom: 1px solid #eeeeee;
}

.widget.widget_categories .widget-title--categories::after {
	left: 0;
	bottom: -1px;
	width: 7.5em;
	max-width: 45%;
	height: 2px;
	background-color: var(--color-primary);
}

.widget.widget_categories .sidebar-categories--lined {
	margin-top: 0;
}

.widget.widget_categories .sidebar-categories--lined li {
	display: block;
	margin: 0;
	border-bottom: 1px solid #eeeeee;
}

.widget.widget_categories .sidebar-categories--lined li:first-child {
	border-top: none;
}

.widget.widget_categories .sidebar-categories--lined a {
	display: block;
	padding: 0.85rem 0.35rem 0.85rem 0.15rem;
	font-size: 0.9rem;
	font-weight: 400;
	color: #444444;
	text-decoration: none;
	background-color: transparent;
	border-radius: 0;
	border: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.widget.widget_categories .sidebar-categories--lined a:hover {
	color: var(--color-primary);
	background-color: #f9f9f9;
}

.widget.widget_categories .sidebar-categories--lined li.cat-item-all a {
	background-color: transparent;
	color: #444444;
	border: none;
}

.widget.widget_categories .sidebar-categories--lined li.cat-item-all a:hover {
	background-color: #f9f9f9;
	color: var(--color-primary);
	border: none;
}

.sidebar-archive-select {
	width: 100%;
	max-width: 100%;
	height: 40px;
	padding: 0 12px;
	font-size: 0.875rem;
	color: var(--color-text);
	background-color: #ffffff;
	border: 1px solid var(--color-border);
	border-radius: 3px;
	cursor: pointer;
}

.mainpost.site-main {
	padding-top: 0;
}

.post-archive-cover {
	position: relative;
	height: 132px;
	overflow: hidden;
	background: #121212;
}

.post-archive-cover__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0.8;
}

.post-archive-cover__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.3);
}

.post-archive-cover__inner {
	text-align: center;
    color: #ffffff;
    z-index: 1;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.post-archive-cover__title {
	margin: 0;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.2;
	position: relative;
	display: inline-block;
	padding-bottom: 0.28rem;
	letter-spacing: 0.02em;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.post-archive-cover__title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 66px;
	height: 2px;
	background-color: var(--color-primary);
	transform: translateX(-50%);
}

.post-archive-cover__subtitle {
	font-family: var(--font-strong);
	margin: 0.2rem 0 0;
	padding: 0.16rem 0.92rem 0.2rem;
	border: none;
	border-radius: 9999px;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.08em;
}

/* page-terms / page-app-privacy / page-materials: hero without EN subtitle or title underline */
.post-archive-cover--page {
	min-height: 180px;
	height: auto;
	background: #1a1a1a;
}

.post-archive-cover--page .post-archive-cover__img {
	opacity: 1;
}

.post-archive-cover--page .post-archive-cover__overlay {
	background: rgba(0, 0, 0, 0.35);
	z-index: 1;
}

.post-archive-cover--page .post-archive-cover__inner {
	position: relative;
	top: auto;
	left: auto;
	transform: none;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 180px;
	padding: 1rem var(--container-pad-x);
}

/* 固定ページ共通 h2（中央・下線・アクセント）— .mainarea .ttl の中央寄せ版に相当 */
.page-heading {
	margin: 0 0 clamp(1.25rem, 1rem + 1vw, 1.75rem);
	padding-top: clamp(0.75rem, 0.5rem + 1vw, 1.5rem);
	padding-bottom: clamp(0.6rem, 0.48rem + 0.32vw, 0.95rem);
	border-bottom: 2px solid #e5e5e5;
	font-size: 1.5rem;
	font-weight: 700;
	position: relative;
	text-align: center;
	color: var(--color-text);
}

.page-heading::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -2px;
	width: 68px;
	height: 3px;
	background-color: var(--color-primary);
	transform: translateX(-50%);
}

/* 文書ブロック内 h2（左揃え・点線） */
.page-heading--doc {
	margin: 0 0 clamp(1.1rem, 0.95rem + 0.6vw, 1.5rem);
	padding: 0 0 0.65rem;
	border-bottom: 1px dotted #cccccc;
	font-size: 1.5rem;
	font-weight: 700;
	text-align: left;
	color: #333333;
}

.page-heading--doc::after {
	display: none;
}

.content-sidebar-wrap--archive {
	padding-top: var(--space-8);
}

.page-content-wrap {
	padding-top: var(--space-8);
	padding-bottom: var(--space-10);
}

.page-content {
	margin: 0;
}

.page-content-body {
	max-width: 100%;
}

.mainarea .ttl {
	margin: 0 0 1.1rem;
	padding-bottom: 0.55rem;
	border-bottom: 2px solid #e5e5e5;
	font-size: 1.375rem;
	font-weight: 700;
	position: relative;
}

.mainarea .ttl::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 68px;
	height: 3px;
	background-color: var(--color-primary);
}

.material-symbols-outlined {
	font-family: "Material Symbols Outlined", sans-serif;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
	line-height: 1;
	vertical-align: middle;
}

.material-symbols-outlined.icon-size-sm {
	font-size: 16px;
}

.post-archive .list {
	margin: 0;
	padding: 1rem 0;
	border-bottom: 1px solid #ececec;
}

.post-archive .list:last-child {
	border-bottom: 1px solid #ececec;
}

.post-archive .list > .post_links {
	display: block;
	color: inherit;
	text-decoration: none;
}

.post-archive .list > .post_links:hover {
	background-color: #f7f7f7;
}

.list-block {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.post_thumb {
	width: 84px;
	flex-shrink: 0;
	aspect-ratio: 3 / 2;
	background-color: #ebebeb;
	background-size: cover;
	background-position: center;
}

.post_thumb span {
	display: block;
	width: 100%;
	height: 100%;
}

.list-text {
	flex: 1;
	min-width: 0;
}

.post_meta-inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.7rem;
}

.post_cat {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.45rem;
	font-size: 0.78rem;
	line-height: 1.2;
	color: #ffffff;
	background-color: var(--color-primary);
	white-space: nowrap;
}

.post_cat.post_cat_8 {
	background-color: #58bba0;
}

.post_time {
	display: inline-flex;
	align-items: center;
	gap: 0.2rem;
	font-size: 0.86rem;
	color: #666666;
}

.list-title {
	margin: 0.45rem 0 0;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.45;
	color: #333333;
}

.archive-description {
	margin: 0 0 1rem;
	color: var(--color-text-muted);
}

.post-archive .navigation {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--color-border);
}

.post-archive .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.post-archive .nav-links a,
.post-archive .nav-links span {
	display: inline-block;
	padding: 0.35rem 0.7rem;
	font-size: 0.85rem;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	text-decoration: none;
	color: #555555;
}

.post-archive .nav-links .current {
	background: #f0f0f0;
	color: #222222;
}

.single-post {
	margin: 0;
	padding-bottom: var(--space-8);
	border-bottom: 1px solid var(--color-border);
}

.single-post-header {
	margin-bottom: 1.25rem;
}

.single-post-title {
	margin: 0 0 0.5rem;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.35;
	color: #333333;
}

.single-breadcrumb {
	margin: 0 0 1rem;
	padding-bottom: 0.65rem;
	border-bottom: 1px solid #e5e5e5;
	font-size: 0.8125rem;
	line-height: 1.65;
	color: #444444;
}

.single-breadcrumb__inner {
	margin: 0;
}

.single-breadcrumb a {
	color: #444444;
	text-decoration: none;
}

.single-breadcrumb a:hover {
	color: var(--color-primary);
	text-decoration: underline;
}

.single-breadcrumb__sep {
	color: #888888;
	font-weight: 400;
}

.single-breadcrumb__current {
	color: #333333;
	font-weight: 400;
}

.single-post-share-wrap--header {
	margin-bottom: 1rem;
}

.single-post-share-wrap--header .single-post-share-list {
	margin: 0;
}

.single-post-meta-row {
	margin: 0 0 0.25rem;
}

.single-post-meta-row .post_meta-inline {
	width: 100%;
}

.single-post-body {
	margin-top: 1rem;
}

.single-post-body .wp-block-heading.has-medium-font-size {
	margin-top: 2.25rem;
}

.single-post-after {
	margin-top: 2rem;
}

.single-post-after > * {
	padding-top: 1.25rem;
}

.single-post-nav-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.single-post-footer-link {
	display: inline-block;
	padding: 0.45rem 0.85rem;
	font-size: 0.9rem;
	color: #444444;
	text-decoration: none;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.single-post-footer-link:hover {
	background: #f7f7f7;
	color: var(--color-primary);
}

.single-post-share-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.single-post-share-list li {
	margin: 0;
}

.single-post-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 2.25rem;
	padding: 0.35rem 0.85rem 0.35rem 0.65rem;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: #ffffff;
	text-decoration: none;
	border-radius: 5px;
	line-height: 1.2;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
	transition: filter 0.15s ease, transform 0.08s ease;
}

.single-post-share-btn:hover {
	color: #ffffff;
	filter: brightness(1.05);
}

.single-post-share-btn:active {
	transform: translateY(1px);
}

.single-post-share-btn__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.2rem;
	height: 1.2rem;
	font-size: 0.8rem;
	font-weight: 700;
	font-family: Arial, Helvetica, sans-serif;
	line-height: 1;
}

.single-post-share-btn--facebook {
	background: #5b72b0;
}

.single-post-share-btn--twitter {
	background: #6cbce8;
}

.single-post-share-btn--line {
	background: #32c329;
}

.single-post-pagination-wrap .post-navigation {
	margin: 0;
}

.single-post-pagination-wrap .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem;
}

.single-post-pagination-wrap .nav-previous a,
.single-post-pagination-wrap .nav-next a {
	display: inline-block;
	padding: 0.45rem 0.85rem;
	font-size: 0.9rem;
	color: #444444;
	text-decoration: none;
	border: 1px solid var(--color-border);
	border-radius: 4px;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.single-post-pagination-wrap .nav-previous a:hover,
.single-post-pagination-wrap .nav-next a:hover {
	background: #f7f7f7;
	color: var(--color-primary);
}

.single-related {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--color-border);
}

.single-related .ttl {
	margin-bottom: 1rem;
}

@media (width >= 820px) {
	/* page-terms / page-app-privacy / page-materials: hero without EN subtitle or title underline */
	.post-archive-cover:not(.post-archive-cover--page) {
		height: 180px;
	}

	.post-archive-cover__title {
		font-size: 1.8rem;
		padding-bottom: 0.45rem;
	}

	.post-archive-cover__title::after {
		width: 70px;
	}

	.post-archive-cover__subtitle {
		margin-top: 0.45rem;
	}

	.post_thumb {
		width: 114px;
	}
}

.site-footer{
	padding-bottom: 90px;	
}

.site-footer-wrap {
	background: linear-gradient(180deg, rgb(243, 243, 243) 0%, rgb(255, 255, 255) 100%);
	padding: 2rem 0 1.75rem;
}

.site-footer a {
	text-decoration: none;
	color: inherit;
}

.footer-download-block {
	display: none;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #d9d9d9;
}

.footer-download-icon {
	text-align: center;
}

.footer-download-icon img {
	width: 132px;
	height: auto;
}

.footer-download-title {
	margin: 0 0 0.75rem;
	padding: 0.5rem 0.85rem;
	background: #ffffff;
	font-size: 0.88rem;
}

.footer-download-items {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
}

.footer-download-badge img {
	width: min(86vw, 245px);
	height: auto;
}

.footer-download-arrow {
	font-size: 24px;
	line-height: 1;
	color: #5b5b5b;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 0.1rem;
}

.footer-download-qr {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.footer-download-qr img {
	width: 98px;
	height: auto;
}

.footer-download-qr figcaption {
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

.footer-main {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	padding-top: 1.25rem;
}

.footer-info p {
	margin: 0 0 0.5rem;
	font-size: 0.9rem;
}

.footer-logo img {
	width: 190px;
	height: auto;
}

.footer-nav ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 0.5rem;
}

.footer-nav a {
	font-size: 0.9rem;
	color: #333;
}

.footer-notes {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid #e0e0e0;
}

.footer-notes p {
	margin: 0 0 0.35rem;
	font-size: 0.72rem;
	color: #555;
	line-height: 1.55;
}

.footer-copy {
	background: #333;
	color: #fff;
	text-align: center;
	padding: 0.6rem 1rem;
	font-size: 0.75rem;
}

.footer-copy p {
	margin: 0;
}

.footer-sticky{
	background: var(--color-primary);
	display: flex;
	flex-wrap: nowrap;
	gap: 30px;
	padding: 10px;
	height: 90px;
	position: fixed;
	bottom: 0;
	width: 100%;
}

.footer-sticky-download-items{
    display: flex;
    gap: 10px;	
}

.footer-sticky-download-icon{
    margin-top: 10px;	
}

.footer-sticky-download-icon img{
	box-sizing: border-box;
	height: auto;
	max-width: 100%;
	vertical-align: text-top;
}

.footer-sticky-download-title{
	margin: 0;
	text-align: center;
	color: #fff;
	font-weight: 900;
}

.footer-sticky-download-badge img{
	height: 40px;
}

@media (width >= 820px) {
	.footer-sticky{
		display: none;
	}
	.footer-download-content {
		--footer-download-items-width: calc(255px + 24px + 102px + 255px + 24px + 102px + (0.55rem * 5));
		max-width: var(--footer-download-items-width);
	}

	.footer-download-title,
	.footer-download-items {
		width: var(--footer-download-items-width);
	}

	.footer-download-block {
		display: grid;
		grid-template-columns: 170px 1fr;
		align-items: start;
		gap: 2rem;
	}

	.footer-download-icon {
		text-align: left;
	}

	.footer-download-icon img {
		width: 170px;
	}

	.footer-download-items {
		display: grid;
		grid-template-columns: 255px 24px 102px 255px 24px 102px;
		align-items: center;
		gap: 0.55rem;
	}

	.footer-download-badge img {
		width: 255px;
	}

	.footer-download-qr {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.footer-download-qr img {
		width: 102px;
	}

	.footer-download-arrow {
		font-size: 24px;
		margin: 0;
	}

	.footer-main {
		grid-template-columns: 40% 30% 30%;
		gap: 1rem 1.25rem;
	}

	.footer-nav a {
		font-size: 0.85rem;
	}

	.footer-notes p {
		font-size: 0.68rem;
	}
}

/* ===== header.css ===== */

.site-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	background-color: var(--color-bg);
	box-shadow: 0px -2px 10px #4fbe97;
	height: 92px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.admin-bar .site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

.header-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	padding-top: var(--space-4);
	padding-bottom: var(--space-4);
	min-height: var(--header-height);
}

.header-brand {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	max-width: min(56vw, 15rem);
}

.header-brand--kabepita {
	max-width: min(72vw, 18rem);
}

.header-brand--textorage-logo {
	max-width: min(38vw, 16rem);
}

.kabepita-brand--textorage-logo .kabepita-brand-mark {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: clamp(1.6rem, 1.35rem + 0.45vw, 2rem);
	object-fit: contain;
}

@media (width < 820px) {
	/* モバイル：テクスチャ識別プロジェクトのロゴが小さすぎるため少し拡大 */
	.header-brand--textorage-logo {
		max-width: min(72vw, 20rem);
	}

	.kabepita-brand--textorage-logo .kabepita-brand-mark {
		max-height: clamp(2.1rem, 1.9rem + 1vw, 2.6rem);
	}
}

/* テクスチャ識別ロゴ時：左ロゴ・右ナビ */
.site-header--textorage-brand .header-inner {
	align-items: center;
	justify-content: space-between;
	gap: clamp(0.35rem, 0.2rem + 0.4vw, 0.75rem);
	flex-wrap: nowrap;
}

@media (width >= 820px) {
	.site-header--textorage-brand .header-brand {
		flex: 0 1 26%;
		width: auto;
		max-width: min(30vw, 15rem);
		min-width: 0;
		margin-inline: 0;
		justify-content: flex-start;
	}

	.site-header--textorage-brand .kabepita-brand {
		align-items: flex-start;
		min-width: 0;
	}

	.site-header--textorage-brand .kabepita-brand-link {
		max-width: 100%;
	}
}

.kabepita-brand {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-1);
	width: 100%;
}

.kabepita-brand-lead {
	margin: 0;
	font-size: clamp(0.6875rem, 0.62rem + 0.16vw, 0.8125rem);
	font-weight: 600;
	color: var(--color-text-muted);
	letter-spacing: 0.04em;
	line-height: 1.3;
	text-align: center;
	align-self: center;
}

.kabepita-brand-link {
	display: inline-flex;
	line-height: 0;
	text-decoration: none;
	color: inherit;
}

.kabepita-brand-link:hover .kabepita-brand-mark,
.kabepita-brand-link:focus-visible .kabepita-brand-mark {
	opacity: 0.92;
}

.kabepita-brand-link:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
	border-radius: 0.125rem;
}

.kabepita-brand-mark {
	display: block;
	width: auto;
	height: auto;
	max-height: clamp(2.25rem, 2rem + 0.8vw, 2.85rem);
}

.header-brand .custom-logo-link {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	line-height: 1;
}

.header-brand .custom-logo {
	display: block;
	width: auto;
	height: auto;
	max-height: clamp(2.25rem, 2rem + 0.8vw, 2.75rem);
}

.site-title {
	font-size: clamp(1rem, 0.92rem + 0.25vw, 1.125rem);
	font-weight: 700;
	color: var(--color-text);
	text-decoration: none;
	letter-spacing: 0.02em;
}

.site-title:hover {
	color: var(--color-primary);
}

.nav-toggle {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	margin: 0;
	border: none;
	background: var(--color-bg);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	-webkit-appearance: none;
	appearance: none;
}

/* Firefox: default button inner border/padding can skew hit-target visuals */
.nav-toggle::-moz-focus-inner {
	border: 0;
	padding: 0;
}

.nav-toggle:hover {
	border-color: var(--color-primary);
}

/* Chromium/Edge: suppress native press “ink” / dim circle misaligned with flex contents */
.nav-toggle:active {
	background-color: var(--color-bg);
}

/* Pointer: no focus ring on tap; keyboard uses :focus-visible */
.nav-toggle:focus:not(:focus-visible) {
	outline: none;
	box-shadow: none;
}

.nav-toggle:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.nav-toggle-bar {
	display: block;
	width: 1.25rem;
	height: 2px;
	margin-left: auto;
	margin-right: auto;
	background-color: var(--color-text);
	border-radius: 1px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.site-header.is-nav-open .nav-toggle-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.site-header.is-nav-open .nav-toggle-bar:nth-child(2) {
	opacity: 0;
}

.site-header.is-nav-open .nav-toggle-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.header-nav {
	flex: 1 1 100%;
	display: none;
	padding-bottom: var(--space-6);
}

.site-header.is-nav-open .header-nav {
	display: block;
}

.nav-list {
	list-style: none;
	margin: 0;
	padding: var(--space-2) 0 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.nav-item {
	margin: 0;
	padding: 0;
}

.nav-link {
	display: block;
	padding: var(--space-3) var(--space-4);
	font-size: clamp(0.9375rem, 0.9rem + 0.12vw, 1rem);
	font-weight: 600;
	color: #ffffff;
	text-decoration: none;
	text-align: center;
	border: 1px solid transparent;
	background-color: var(--color-primary);
	border-radius: 999px;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.nav-link:hover,
.nav-link:focus-visible {
	color: #ffffff;
	background-color: var(--color-primary);
	border-radius: 999px;
}

.nav-link:focus-visible {
	outline: 2px solid var(--color-text);
	outline-offset: 2px;
}

.nav-item.current-menu-item > .nav-link,
.nav-item.current-menu-ancestor > .nav-link {
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.85);
}

.nav-link-accent {
	background-color: #ffffff;
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.nav-link-accent:hover,
.nav-link-accent:focus-visible {
	background-color: rgba(77, 187, 155, 0.12);
	color: var(--color-primary-hover);
}

@media (width < 820px) {
	/* モバイル：ナビをドロワー化（右からスライド） */
	.header-inner {
		position: relative;
		z-index: calc(var(--z-header) + 3);
	}

	.nav-toggle {
		position: relative;
		z-index: calc(var(--z-header) + 4);
	}

	.header-nav {
		display: block;
		position: fixed;
		inset: 0 0 0 auto;
		width: min(92vw, 22rem);
		height: 100dvh;
		padding: calc(var(--header-height) + var(--space-4)) var(--space-4) var(--space-6);
		background: var(--color-bg);
		transform: translateX(102%);
		opacity: 0;
		pointer-events: none;
		transition: transform 0.28s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.2s ease;
		z-index: calc(var(--z-header) + 2);
	}

	.site-header.is-nav-open .header-nav {
		transform: translateX(0);
		opacity: 1;
		pointer-events: auto;
	}

	/* 背景オーバーレイ */
	.site-header::before {
		content: "";
		position: fixed;
		inset: 0;
		background: rgba(2, 6, 23, 0.42);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.2s ease;
		/* ヘッダー（トグル/X）は押せるように背面に */
		z-index: calc(var(--z-header) - 1);
	}

	.site-header.is-nav-open::before {
		opacity: 1;
		pointer-events: auto;
	}

	/* メニュー項目 */
	.nav-list {
		gap: 0.65rem;
		padding-top: 0;
	}

	.nav-link {
		padding: 0.9rem 1.05rem;
		border-radius: 3px;
		box-shadow: 0 10px 24px rgba(2, 6, 23, 0.12);
		        background: var(--color-primary);
        color: #fff;
	}

	.nav-link:hover{
		border-radius: 0;
	}

	.nav-link:active {
		transform: translateY(1px);
	}
}

@media (prefers-reduced-motion: reduce) {
	@media (width < 820px) {
		.header-nav,
		.site-header::before {
			transition-duration: 0.01ms;
		}
	}
}

@media (width >= 820px) {
	.nav-toggle {
		display: none;
	}

	.header-nav {
		display: block;
		flex: 0 1 auto;
		padding-bottom: 0;
	}

	.nav-list {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-end;
		align-items: center;
		gap: var(--space-2) var(--space-2);
		padding-top: 0;
	}

	.nav-link {
		padding: var(--space-2) var(--space-3);
		font-size: clamp(0.8125rem, 1rem + 0.1vw, 0.9375rem);
		white-space: nowrap;
	}

	.nav-link-accent {
		padding-left: var(--space-4);
		padding-right: var(--space-4);
	}
}

body.single-post{
	padding-bottom: 0;	
}

body.is-nav-open {
	overflow: hidden;
}

@media (width >= 820px) {
	body.is-nav-open {
		overflow: auto;
	}
}

/* ===== kabe-pita.css ===== */

.kabe-pita-landing {
	--kp-type-base: clamp(1.0625rem, 1rem + 0.35vw, 1.125rem);
	--kp-type-lead: clamp(1.05rem, 0.95rem + 0.35vw, 1.1875rem);
	--kp-type-title: clamp(1.42rem, 1.18rem + 0.65vw, 1.72rem);
	padding-top: 0;
	padding-bottom: clamp(5rem, 15vw, 12.5rem);
	font-size: var(--kp-type-base);
	line-height: 1.65;
	background-image: linear-gradient(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.35)), url(https://textorage.com/wp-content/uploads/2024/02/kabepita-top-coverbg-posimg.jpg);
	background-position: 50% 50%;
	background-attachment: fixed;
}

/* <br class="kp-br-mobile-only"> — 829px以下で改行、830px以上では改行なし */
/* <br class="kp-br-desktop-only"> — 829px以下では改行なし、830px以上で改行 */
@media (width >= 830px) {
	.kp-br-mobile-only {
		display: none;
	}
}

@media (width < 830px) {
	.kp-br-desktop-only {
		display: none;
	}
}

.kabe-pita-landing .kp-hero {
	background: #fff;
	padding-top: clamp(4.25rem, 1.5rem + 3vw, 4rem);
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
}

.kabe-pita-landing .kp-hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(2rem, 1.5rem + 2vw, 3rem);
	align-items: center;
}

@media (width >= 820px) {
	.kabe-pita-landing .kp-hero__grid {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(1.5rem, 1rem + 2vw, 2.75rem);
		align-items: center;
	}
}

.kabe-pita-landing .kp-hero__copy {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	max-width: 36rem;
	margin-inline: auto;
	width: 100%;
}

.kabe-pita-landing .kp-hero__title {
	margin: 0 0 clamp(0.85rem, 0.6rem + 0.8vw, 1.25rem);
	font-size: clamp(1.65rem, 1.28rem + 1.45vw, 2.55rem);
	line-height: 1.32;
	letter-spacing: 0.02em;
	color: #0f172a;
}

.kabe-pita-landing .kp-hero__logos {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.5rem 0.75rem;
	margin: 0 0 0.5rem;
}

.kabe-pita-landing .kp-hero__logo-img {
	max-width: min(148px, 42vw);
	height: auto;
}

.kabe-pita-landing .kp-hero__tagline {
	margin: 0 0 clamp(0.65rem, 0.5rem + 0.5vw, 1rem);
	font-weight: 700;
	font-size: clamp(1.05rem, 0.95rem + 0.35vw, 1.1875rem);
	color: #1e293b;
}

.kabe-pita-landing .kp-hero__award {
	margin: 0 0 clamp(1rem, 0.75rem + 1vw, 1.5rem);
}

.kabe-pita-landing .kp-hero__award img {
	display: block;
	margin-inline: auto;
	width: min(250px, 72vw);
	height: auto;
}

.kabe-pita-landing .kp-hero__note {
	margin: clamp(1rem, 0.75rem + 1vw, 1.35rem) auto 0;
	max-width: 28rem;
	width: 100%;
	font-size: clamp(0.8125rem, 0.76rem + 0.2vw, 0.8375rem);
	line-height: 1.65;
	text-align: left;
}

.kabe-pita-landing .kp-hero__visual {
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: flex-end;
}

.kabe-pita-landing .kp-hero__phone {
	width: min(260px, 58vw);
	max-width: 100%;
	height: auto;
	filter: drop-shadow(0 12px 32px rgba(15, 23, 42, 0.12));
}

.kabe-pita-landing .kp-news {
	padding: clamp(4.5rem, 4vw, 3.75rem) 0;
	background: #fff;
	margin-bottom: clamp(5rem, 15vw, 12.5rem);
}

.kabe-pita-landing .kp-news__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
}

.kabe-pita-landing .kp-section-title {
	margin: 0 0 clamp(1.5rem, 1.1rem + 1.3vw, 2rem);
	font-size: var(--kp-type-title);
	line-height: 1.32;
	text-align: center;
}

.kabe-pita-landing .kp-news__release + .kp-news__notice {
	margin-top: clamp(2.75rem, 4.25vw, 3.75rem);
}

.kabe-pita-landing .kp-news__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.kabe-pita-landing .kp-news__list li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.4rem;
	padding: 0.65rem 0;
	border-bottom: 1px solid #e2e8f0;
}

.kabe-pita-landing .kp-news__list time {
	font-size: clamp(0.875rem, 0.82rem + 0.15vw, 0.9375rem);
}

.kabe-pita-landing .kp-news__list a {
	font-size: clamp(0.9375rem, 0.88rem + 0.2vw, 1.0625rem);
	color: #00a5d4;
	text-decoration: none;
}

.kabe-pita-landing .kp-news__list a:hover {
	text-decoration: underline;
}

@media (width >= 820px) {
	.kabe-pita-landing .kp-news__list li {
		flex-direction: row;
		align-items: baseline;
		gap: 0.9rem;
	}

	.kabe-pita-landing .kp-news__list time {
		white-space: nowrap;
		flex: 0 0 auto;
	}

	.kabe-pita-landing .kp-news__list a {
		flex: 1 1 auto;
		min-width: 0;
	}
}

.kabe-pita-landing .kp-news__col > p {
	margin: 0.9rem 0 0;
}

:is(.kabe-pita-landing, .page-features) .kp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.6rem 1.25rem;
	border: 1px solid #00a5d4;
	border-radius: 999px;
	font-size: clamp(0.9375rem, 0.88rem + 0.22vw, 1.0625rem);
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

:is(.kabe-pita-landing, .page-features) .kp-btn__icon {
	font-size: 1.35rem;
	line-height: 1;
	flex-shrink: 0;
	font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

:is(.kabe-pita-landing, .page-features) .kp-btn__label {
	line-height: 1.3;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--outline {
	color: #00a5d4;
	background: #fff;
	border-color: #00a5d4;
	overflow: hidden;
	position: relative;
	z-index: 2;
	transition: color 0.4s ease, border-color 0.4s ease, background-color 0.4s ease;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--outline > * {
	position: relative;
	z-index: 1;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--outline::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	width: 100%;
	padding-top: 100%;
	height: 0;
	margin: auto;
	background: #00a5d4;
	border-radius: 50%;
	opacity: 0;
	pointer-events: none;
	z-index: 0;
	transform: translateY(-50%) scale(0.1);
	transition: opacity 0.2s, transform 0s;
	transition-delay: 0s, 0.2s;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--outline:hover {
	color: #fff;
	border-color: #00a5d4;
	background: #fff;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--outline:hover::after {
	opacity: 1;
	transform: translateY(-50%) scale(1.1);
	transition-delay: 0s;
	transition: opacity 0.2s, transform 0.2s ease-in-out;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--solid {
	color: #fff;
	background: var(--color-primary, #00a5d4);
	border-color: var(--color-primary, #00a5d4);
	overflow: hidden;
	position: relative;
	z-index: 2;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--solid > * {
	position: relative;
	z-index: 1;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--solid::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	width: 100%;
	padding-top: 100%;
	height: 0;
	margin: auto;
	background: #fff;
	border-radius: 50%;
	opacity: 0;
	pointer-events: none;
	z-index: 0;
	transform: translateY(-50%) scale(0.1);
	transition: opacity 0.2s, transform 0s;
	transition-delay: 0s, 0.2s;
}

:is(.kabe-pita-landing, .page-features) .kp-btn--solid:hover {
	color: var(--color-primary, #4dbb9b);
	border-color: var(--color-primary, #4dbb9b);
	background: var(--color-primary, #00a5d4);
}

:is(.kabe-pita-landing, .page-features) .kp-btn--solid:hover::after {
	opacity: 1;
	transform: translateY(-50%) scale(1.1);
	transition-delay: 0s;
	transition: opacity 0.2s, transform 0.2s ease-in-out;
}

.kabe-pita-landing .kp-hero__logo-cross img {
	width: 28px;
	height: auto;
	vertical-align: middle;
}

.kabe-pita-landing .kp-hero__download {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: clamp(0.65rem, 0.5rem + 0.8vw, 1.25rem);
	margin: 0 0 clamp(0.75rem, 0.5rem + 0.8vw, 1.25rem);
	width: 100%;
	max-width: 28rem;
}

.kabe-pita-landing .kp-hero__download-icon {
	flex: 0 0 auto;
	align-self: center;
}

.kabe-pita-landing .kp-hero__download-icon img {
	width: min(84px, 20vw);
	height: auto;
	display: block;
}

.kabe-pita-landing .kp-hero__download-stores {
	flex: 1 1 auto;
	min-width: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(0.5rem, 0.4rem + 0.5vw, 1rem);
	align-items: start;
	align-self: center;
}

.kabe-pita-landing .kp-hero__store {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	min-width: 0;
}

.kabe-pita-landing .kp-hero__store-badge {
	display: block;
	line-height: 0;
}

.kabe-pita-landing .kp-hero__store-badge img {
	width: auto;
	max-width: min(200px, 46vw);
	height: 40px;
	object-fit: contain;
	object-position: center center;
	display: block;
	margin-inline: auto;
}

.kabe-pita-landing .kp-hero__store-arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0.2rem 0 0.15rem;
	line-height: 0;
}

.kabe-pita-landing .kp-hero__store-arrow .material-symbols-outlined {
	font-size: 1.35rem;
}

.kabe-pita-landing .kp-hero__store-qr {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1.45;
}

.kabe-pita-landing .kp-hero__store-qr img {
	display: block;
	width: min(100px, 24vw);
	height: auto;
	margin-bottom: 0.2rem;
}

@media (width < 820px) {
	.kabe-pita-landing .kp-hero__store-arrow {
		display: none;
	}

	.kabe-pita-landing .kp-hero__store-qr {
		display: none;
	}
}

@media (width < 400px) {
	.kabe-pita-landing .kp-hero__download {
		justify-content: space-between;
		gap: 0.5rem;
	}

	.kabe-pita-landing .kp-hero__download-stores {
		width: min(100%, 18rem);
	}
}

@media (width >= 820px) {
	.kabe-pita-landing .kp-hero__copy {
		max-width: 42rem;
		margin-bottom: clamp(2.5rem, 2rem + 2.5vw, 3.75rem);
	}

	.kabe-pita-landing .kp-hero__title {
		font-size: 2.85rem;
	}

	.kabe-pita-landing .kp-hero__logo-img {
		max-width: 175px;
	}

	.kabe-pita-landing .kp-hero__logo-cross img {
		width: 36px;
	}

	.kabe-pita-landing .kp-hero__tagline {
		font-size: 1.2rem;
	}

	.kabe-pita-landing .kp-hero__award img {
		width: 270px;
		max-width: 270px;
	}

	.kabe-pita-landing .kp-hero__download {
		max-width: 34rem;
	}

	.kabe-pita-landing .kp-hero__download-icon img {
		width: 112px;
		max-width: 112px;
	}

	.kabe-pita-landing .kp-hero__store-badge img {
		max-width: 230px;
		height: 48px;
	}

	.kabe-pita-landing .kp-hero__store-arrow {
		display: flex;
	}

	.kabe-pita-landing .kp-hero__store-qr {
		display: flex;
		font-size: 0.75rem;
	}

	.kabe-pita-landing .kp-hero__store-qr img {
		width: 108px;
		max-width: 108px;
	}

	.kabe-pita-landing .kp-hero__phone {
		width: 230px;
		max-width: 230px;
	}
}

.kabe-pita-landing .kp-section-title--lined {
	text-align: center;
	margin-bottom: clamp(1.1rem, 0.85rem + 0.9vw, 1.5rem);
	padding-bottom: 0;
	border-bottom: none;
}

.kabe-pita-landing .kp-news .kp-section-title--lined {
	border-bottom: none;
	padding-bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	white-space: nowrap;
}

.kabe-pita-landing .kp-news .kp-section-title--lined::before,
.kabe-pita-landing .kp-news .kp-section-title--lined::after {
	content: "";
	height: 1px;
	background: #cbd5e1;
	flex: 1;
}

@media (width < 500px) {
	.kabe-pita-landing .kp-news .kp-section-title--lined::before,
	.kabe-pita-landing .kp-news .kp-section-title--lined::after {
		max-width: 5.5rem;
	}
}

.kabe-pita-landing .kp-news__list--solo {
	margin-bottom: 0.65rem;
}

.kabe-pita-landing .kp-news__actions {
	text-align: center;
	margin: clamp(1.35rem, 1.05rem + 1.1vw, 2rem) 0 clamp(2rem, 1.55rem + 1.35vw, 2.85rem);
}

.kabe-pita-landing .kp-news__actions a:hover,
.kabe-pita-landing .kp-news__actions a:focus-visible {
	background: #00a5d4;
	color: #ffffff;
	border-color: #00a5d4;
}

.kabe-pita-landing .kp-intro {
	padding: clamp(4.75rem, 5vw, 4.5rem) 0;
	background: #fff;
}

.kabe-pita-landing .kp-intro__inner {
	max-width: 72rem;
}

.kabe-pita-landing .kp-intro__card {
	padding: clamp(1.25rem, 0.9rem + 1.2vw, 2.25rem);
}

@media (width >= 820px) {
	.kabe-pita-landing .kp-intro {
		background-attachment: fixed;
		min-height: min(90vh, 900px);
	}
}


.kabe-pita-landing .kp-intro__heading {
	margin: 0 0 clamp(0.45rem, 0.3rem + 0.5vw, 0.65rem);
	font-size: clamp(1.4rem, 1.15rem + 0.85vw, 1.7rem);
	text-align: center;
	line-height: 1.35;
}

.kabe-pita-landing .kp-intro__lead {
	margin: 0 0 clamp(1.2rem, 2vw, 1.75rem);
	text-align: center;
	font-size: var(--kp-type-lead);
	line-height: 1.65;
}

.kabe-pita-landing .kp-intro__split {
	display: grid;
	gap: clamp(1.35rem, 1.05rem + 1.1vw, 2.1rem);
	align-items: center;
	margin-bottom: clamp(2.1rem, 1.6rem + 2vw, 3.1rem);
}

@media (width >= 820px) {
	.kabe-pita-landing .kp-intro__split {
		grid-template-columns: 1fr 1.1fr;
	}

	.kabe-pita-landing .kp-intro__split--reverse .kp-intro__figure {
		order: 2;
	}

	.kabe-pita-landing .kp-intro__split--reverse .kp-intro__body {
		order: 1;
	}
}

.kabe-pita-landing .kp-intro__body p:has(> .kp-btn.kp-btn--solid) {
	text-align: center;
}

.kabe-pita-landing .kp-intro__figure {
	margin: 0;
	text-align: center;
}

.kabe-pita-landing .kp-intro__figure img {
	width: 100%;
	max-width: 520px;
	height: auto;
	border-radius: 6px;
}

.kabe-pita-landing .kp-intro__topic {
	margin: 0 0 0.75rem;
	font-size: clamp(1.12rem, 1rem + 0.4vw, 1.35rem);
	font-weight: 700;
	line-height: 1.45;
	color: var(--color-text);
	padding: 0.55rem 0.4rem 0.6rem;
    border-top: 3px double #333;
    border-bottom: 3px double #333;
}

.kabe-pita-landing .kp-intro__topic-shell {
	position: relative;
	margin: 1.1rem 0 1rem;
	padding: 1.2rem 1rem 1.2rem;
	background: #fff;
	border: 1px solid rgba(79, 190, 151, 0.5);
	box-shadow: 15px 8px 0 0 rgba(79, 190, 151, 0.5);
}

.kabe-pita-landing .kp-intro__topic-badge {
	position: absolute;
	top: -23px;
	left: 0;
	padding: 0.3rem 0.65rem;
	font-size: 0.875rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: #fff;
	background: #4fbe97;
	line-height: 1;
	border-radius: 5px 5px 0 0;
}

.kabe-pita-landing .kp-intro__topic--point {
	margin: 0;
	padding: 0;
	font-size: clamp(1.1rem, 1rem + 0.45vw, 1.3rem);
	font-weight: 700;
	line-height: 1.55;
	color: #1e293b;
	text-align: left;
	border: none;
}

.kabe-pita-landing .kp-intro__arrow {
	margin: 0;
	text-align: center;
	color: var(--color-primary, #0f766e);
}

.kabe-pita-landing .kp-intro__arrow .material-symbols-outlined {
	font-size: 2rem;
}

.kabe-pita-landing .kp-intro__text {
	margin: 0 0 clamp(0.95rem, 0.75rem + 0.6vw, 1.15rem);
	font-size: clamp(1.02rem, 0.94rem + 0.28vw, 1.125rem);
	line-height: 1.78;
	color: var(--color-text);
}

.kabe-pita-landing .kp-intro__hl {
	background: linear-gradient(transparent 60%, rgba(255, 241, 0, 0.55) 0);
}

.kabe-pita-landing .kp-intro__ul {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
	font-size: clamp(1rem, 0.92rem + 0.22vw, 1.0625rem);
	line-height: 1.75;
}

.kabe-pita-landing .kp-ai {
	background: linear-gradient(270deg, rgb(2, 3, 129) 0%, rgb(0, 13, 38) 100%);
	color: #e2e8f0;
	padding: clamp(4.75rem, 5vw, 4.25rem) 0;
	margin-bottom: clamp(5rem, 15vw, 12.5rem);
}

.kabe-pita-landing .kp-ai a:not(.kp-btn) {
	color: #fcf16e;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.kabe-pita-landing .kp-ai__title {
	display: flex;
	align-items: center;
	gap: clamp(0.65rem, 0.45rem + 0.8vw, 1.1rem);
	width: 100%;
	max-width: 52rem;
	margin: 0 auto clamp(1.25rem, 1rem + 1vw, 1.75rem);
	padding: 0;
	font-size: clamp(1.45rem, 1.15rem + 0.85vw, 1.8rem);
	line-height: 1.32;
	color: #fff;
}

.kabe-pita-landing .kp-ai__title::before,
.kabe-pita-landing .kp-ai__title::after {
	content: "";
	flex: 1 1 auto;
	min-width: 0.75rem;
	height: 1px;
	background: rgba(255, 255, 255, 0.92);
}

.kabe-pita-landing .kp-ai__title-text {
	flex: 0 1 auto;
	min-width: 0;
	text-align: center;
}

@media (width < 830px) {
	.kabe-pita-landing .kp-ai__title {
		font-size: clamp(1.25rem, 0.92rem + 0.65vw, 1.28rem);
		gap: clamp(0.5rem, 0.4rem + 0.5vw, 0.75rem);
	}

	.kabe-pita-landing .kp-ai__title::before,
	.kabe-pita-landing .kp-ai__title::after {
		min-width: 0.5rem;
	}
}

.kabe-pita-landing .kp-ai__split {
	display: grid;
	gap: clamp(1.35rem, 1.1rem + 0.9vw, 1.75rem);
	align-items: center;
}

@media (width >= 820px) {
	.kabe-pita-landing .kp-ai__split {
		grid-template-columns: 2fr 3fr;
	}
}

.kabe-pita-landing .kp-ai__visual {
	text-align: center;
}

.kabe-pita-landing .kp-ai__visual img {
	max-width: 100%;
	height: auto;
}

.kabe-pita-landing .kp-ai__h3 {
	margin: 0 0 clamp(0.65rem, 0.5rem + 0.5vw, 0.85rem);
	font-size: clamp(1rem, 1rem + 0.4vw, 1.4rem);
	font-weight: 700;
	line-height: 1.42;
	color: #fff;
}

@media (width < 820px) {
	.kabe-pita-landing .kp-ai__h3 {
		text-align: center;
	}
}

.kabe-pita-landing .kp-ai__rule {
	margin: 0 0 1rem;
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.35);
}

.kabe-pita-landing .kp-ai__body p {
	margin: 0 0 clamp(0.95rem, 0.75rem + 0.6vw, 1.15rem);
	line-height: 1.78;
	font-size: clamp(1rem, 0.92rem + 0.22vw, 1.0625rem);
}

.kabe-pita-landing p.kp-ai__extlink {
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 0.35rem;
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.5;
	text-align: right;
}

.kabe-pita-landing .kp-ai__extlink .material-symbols-outlined {
	font-size: 1.1rem;
	flex-shrink: 0;
	line-height: 1.4;
}

.kabe-pita-landing .kp-ai__extlink-text {
	min-width: 0;
	text-align: right;
}

@media (width < 820px) {
	.kabe-pita-landing .kp-ai__body {
		min-width: 0;
	}

	.kabe-pita-landing .kp-ai__extlink .material-symbols-outlined {
		font-size: clamp(0.7rem, 0.55rem + 0.65vw, 0.85rem);
		align-self: center;
	}

	.kabe-pita-landing .kp-ai__extlink-text {
		overflow-wrap: break-word;
		word-break: break-word;
	}
}

.kabe-pita-landing .kp-ai__note {
	font-size: clamp(0.8rem, 0.74rem + 0.14vw, 0.875rem);
	opacity: 0.88;
	text-align: right;
	margin-bottom: clamp(0.85rem, 0.65rem + 0.6vw, 1.1rem);
	line-height: 1.5;
}

.kabe-pita-landing .kp-ai__cta {
	margin: 0;
	text-align: center;
}

.kabe-pita-landing .kp-ai__cta .kp-btn.kp-btn--solid {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	min-height: 48px;
	padding: 0.65rem 1.5rem;
	border: 1px solid #d4c84a;
	border-radius: 9999px;
	background: #fcf16e;
	color: #0f172a;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
	overflow: hidden;
	position: relative;
	z-index: 2;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.kabe-pita-landing .kp-ai__cta .kp-btn.kp-btn--solid > * {
	position: relative;
	z-index: 1;
}

.kabe-pita-landing .kp-ai__cta .kp-btn.kp-btn--solid::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	width: 100%;
	padding-top: 100%;
	height: 0;
	margin: auto;
	background: #fff;
	border-radius: 50%;
	opacity: 0;
	pointer-events: none;
	z-index: 0;
	transform: translateY(-50%) scale(0.1);
	transition: opacity 0.2s, transform 0s;
	transition-delay: 0s, 0.2s;
}

.kabe-pita-landing .kp-ai__cta .kp-btn.kp-btn--solid:hover {
	color: #0f172a;
	border-color: #0f172a;
	background: #fcf16e;
}

.kabe-pita-landing .kp-ai__cta .kp-btn.kp-btn--solid:hover::after {
	opacity: 1;
	transform: translateY(-50%) scale(1.1);
	transition-delay: 0s;
	transition: opacity 0.2s, transform 0.2s ease-in-out;
}

.kabe-pita-landing .kp-ai__cta .kp-btn.kp-btn--solid:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}


.kabe-pita-landing .kp-features {
	background: #fff;
	padding: clamp(4.75rem, 5vw, 4.25rem) 0;
	margin-bottom: clamp(5rem, 15vw, 12.5rem);
}

.kabe-pita-landing .kp-features__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: clamp(1.1rem, 0.85rem + 1vw, 1.6rem);
	margin: 0 0 clamp(1.35rem, 1rem + 1.1vw, 1.85rem);
	padding: 0;
	list-style: none;
}

@media (width >= 830px) {
	.kabe-pita-landing .kp-features__grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

@media (width < 820px) {
	.kabe-pita-landing .kp-features__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		justify-items: stretch;
	}

	.kabe-pita-landing .kp-features__grid .kp-features__item:last-child {
		grid-column: 1 / -1;
		justify-self: center;
		width: min(100%, 11rem);
	}
}

.kabe-pita-landing .kp-features__item {
	border-radius: 8px;
	padding: 0 0.35rem 1.05rem;
	text-align: center;
	font-size: clamp(0.9rem, 0.84rem + 0.18vw, 0.975rem);
	line-height: 1.55;
}

.kabe-pita-landing .kp-features__name {
	margin: 0 0 0.5rem;
	padding: 0.35rem 0.25rem;
	font-size: clamp(0.875rem, 0.8rem + 0.2vw, 0.9375rem);
	font-weight: 600;
	background: #efefef;
	border-radius: 4px;
}

.kabe-pita-landing .kp-features__item img {
	width: 80%;
	max-width: 100%;
	height: auto;
	margin: 0 auto 0.5rem;
	display: block;
}

.kabe-pita-landing .kp-features__cta {
	text-align: center;
	margin: 0;
}

.kabe-pita-landing .kp-catalogue {
	padding: clamp(4.75rem, 5vw, 4.25rem) 0;
	background: #fff;
	margin-bottom: clamp(5rem, 15vw, 12.5rem);
}

.kabe-pita-landing .kp-catalogue__sup {
	font-size: 0.65em;
	font-weight: 600;
}

.kabe-pita-landing .kp-catalogue__note {
	text-align: center;
	font-size: clamp(0.875rem, 0.82rem + 0.15vw, 0.9375rem);
	margin: -0.35rem 0 clamp(1.25rem, 1rem + 1vw, 1.75rem);
	line-height: 1.5;
}

.kabe-pita-landing .kp-catalogue__grid.page-features__catalog-grid {
	margin-top: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(4.25rem, 1.1rem + 0.9vw, 1.85rem);
}

@media (width >= 720px) {
	.kabe-pita-landing .kp-catalogue__grid.page-features__catalog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (width >= 1024px) {
	.kabe-pita-landing .kp-catalogue__grid.page-features__catalog-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.kabe-pita-landing .kp-catalogue .page-features__catalog-card {
	padding: 0;
	border: none;
    box-shadow: none;
}

.kabe-pita-landing .kp-catalogue .page-features__catalog-brand {
	margin: 0 0 clamp(1.1rem, 0.85rem + 0.8vw, 1.45rem);
	padding: 0.55rem 0.4rem 0.6rem;
	border-top: 3px double #333;
	border-bottom: 3px double #333;
	border-radius: 0;
	text-align: center;
	font-size: clamp(1.22rem, 1.08rem + 0.45vw, 1.4rem);
	line-height: 1.32;
	background: transparent;
}

.kabe-pita-landing .kp-catalogue .page-features__catalog-series {
	margin: 0 0 clamp(1.1rem, 0.85rem + 0.8vw, 1.45rem);
	text-align: center;
	font-size: clamp(1.05rem, 0.95rem + 0.28vw, 1.15rem);
	line-height: 1.45;
	font-family: var(--font-strong);
}

.kabe-pita-landing .kp-catalogue .page-features__catalog-body {
	margin-top: 0;
}

/* カタログ項目のレイアウトは共通クラス（u-catalog-*）に統一 */

.kabe-pita-landing .kp-awards {
	padding: clamp(4.75rem, 5vw, 4.25rem) 0;
	background: #fff;
}

.kabe-pita-landing .kp-awards__grid {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: clamp(1.25rem, 1rem + 1vw, 1.85rem);
}

@media (width >= 900px) {
	.kabe-pita-landing .kp-awards__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	}
}

.kabe-pita-landing .kp-awards__item {
	text-align: center;
	font-size: clamp(1rem, 0.84rem + 0.18vw, 1rem);
	line-height: 1.55;
	margin-bottom: 0.75rem;
}

.kabe-pita-landing .kp-awards__item img {
	width: min(200px, 70%);
	height: auto;
	margin-bottom: 1rem;
}

.kabe-pita-landing .kp-awards__title {
	margin: 0.15rem 0 0.15rem;
	line-height: 1.35;
}

.kabe-pita-landing .kp-awards__text {
	margin: 0;
	line-height: 1.35;
}

.kabe-pita-landing .kp-awards__item p {
	margin: 0;
}

.kabe-pita-landing .kp-awards__item p strong{
	font-family: var(--font-strong);
}

.kabe-pita-landing .kp-media {
	padding: clamp(4.75rem, 5vw, 4.25rem) 0;
    background: #fff;
    border-top: 1px solid #e2e8f0;
}

.kabe-pita-landing .kp-media__logos {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(1.5rem, 1.2rem + 1vw, 2.5rem) clamp(0.85rem, 0.6rem + 0.9vw, 1.5rem);
	margin-bottom: clamp(1.5rem, 1rem + 1.2vw, 2.5rem);
	align-items: center;
	justify-items: center;
}


.kabe-pita-landing .kp-media__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 2.75rem;
	padding: 0.25rem;
	box-sizing: border-box;
}

.kabe-pita-landing .kp-media__logo img {
	width: auto;
	max-width: min(100%, 240px);
	height: auto;
	max-height: clamp(2.5rem, 5.25vw, 4.25rem);
	object-fit: contain;
	filter: grayscale(0.08);
	opacity: 0.96;
}

.kabe-pita-landing .kp-media__footnote {
	text-align: center;
	font-size: clamp(0.8125rem, 0.78rem + 0.12vw, 0.875rem);
	margin: 0 0 clamp(1.75rem, 3vw, 2.35rem);
	line-height: 1.55;
}

.kabe-pita-landing .kp-media__liaison {
	text-align: center;
	padding-top: clamp(1.35rem, 1rem + 1.2vw, 1.85rem);
    padding-bottom: clamp(1.35rem, 1rem + 1.2vw, 1.85rem);
    padding-left: 0;
    padding-right: 0;
	border-top: 1px solid #e2e8f0;
}

.kabe-pita-landing .kp-media__liaison-title {
	margin: 0 0 0.45rem;
	font-size: clamp(1.08rem, 0.98rem + 0.28vw, 1.2rem);
	font-weight: inherit;
	line-height: 1.45;
}

.kabe-pita-landing .kp-media__liaison-sub {
	margin: 0 0 clamp(0.95rem, 0.75rem + 0.6vw, 1.15rem);
	font-size: clamp(0.875rem, 0.82rem + 0.15vw, 0.9375rem);
	line-height: 1.5;
}

.kabe-pita-landing .kp-media__liaison-cover img {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
	margin-bottom: 1rem;
}

.kabe-pita-landing .kp-materials {
	padding: clamp(4.75rem, 5vw, 4.25rem) 0;
	background: #fff;
	border-top: 1px solid #e2e8f0;
}

.kabe-pita-landing .kp-materials__inner {
	text-align: center;
}

.kabe-pita-landing .kp-materials .kp-section-title {
	margin-bottom: clamp(1rem, 0.75rem + 0.8vw, 1.35rem);
}

/* ===== page-app-privacy / page-terms（かべぴた 法務ドキュメント共通） ===== */

.page-app-privacy.site-main,
.page-terms.site-main,
.page-privacy.site-main {
	padding-top: 0;
	padding-bottom: 0;
}

.page-app-privacy .post-archive-cover--page,
.page-terms .post-archive-cover--page,
.page-privacy .post-archive-cover--page {
	overflow: hidden;
}

/* page-terms / page-app-privacy / page-materials: hero without EN subtitle or title underline */
.page-terms .post-archive-cover--page .post-archive-cover__subtitle,
.page-app-privacy .post-archive-cover--page .post-archive-cover__subtitle,
.page-materials .post-archive-cover--page .post-archive-cover__subtitle {
	display: none;
}

.page-terms .post-archive-cover--page .post-archive-cover__title,
.page-app-privacy .post-archive-cover--page .post-archive-cover__title,
.page-materials .post-archive-cover--page .post-archive-cover__title {
	padding-bottom: 0;
}

.page-terms .post-archive-cover--page .post-archive-cover__title::after,
.page-app-privacy .post-archive-cover--page .post-archive-cover__title::after,
.page-materials .post-archive-cover--page .post-archive-cover__title::after {
	content: none;
	display: none;
}

.page-app-privacy__band,
.page-terms__band,
.page-privacy__band {
	background: #ffffff;
}

.page-app-privacy__article,
.page-terms__article,
.page-privacy__article {
	margin: 0 auto;
	padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem) 0 clamp(2.5rem, 2rem + 2vw, 4rem);
}

.page-app-privacy .page-heading--doc,
.page-terms .page-heading--doc,
.page-privacy .page-heading--doc {
	border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 35%, #e8e8e8);
}

.page-app-privacy__lead {
	margin: 0 0 clamp(1.5rem, 1.25rem + 1vw, 2rem);
}

.page-app-privacy__lead p {
	margin: 0;
	line-height: 1.75;
	color: #333333;
}

.page-app-privacy__section,
.page-terms__section,
.page-privacy__section {
	margin-bottom: clamp(1.75rem, 1.5rem + 1vw, 2.5rem);
}

.page-app-privacy__section:last-child,
.page-terms__section:last-child,
.page-privacy__section:last-child {
	margin-bottom: 0;
}

.page-app-privacy__section p,
.page-terms__section p,
.page-privacy__section p {
	margin: 0 0 1rem;
	line-height: 1.75;
	color: #333333;
}

.page-app-privacy__section p:last-child,
.page-terms__section p:last-child,
.page-privacy__section p:last-child {
	margin-bottom: 0;
}

.page-app-privacy__section ul,
.page-app-privacy__section ol,
.page-terms__section ul,
.page-terms__section ol,
.page-privacy__section ul,
.page-privacy__section ol {
	margin: 0 0 1rem;
	padding-left: 1.5rem;
	line-height: 1.75;
	color: #333333;
}

.page-app-privacy__section li > ul,
.page-app-privacy__section li > ol,
.page-terms__section li > ul,
.page-terms__section li > ol,
.page-privacy__section li > ul,
.page-privacy__section li > ol {
	margin-top: 0.5rem;
	margin-bottom: 0.35rem;
}

.page-app-privacy__section li + li,
.page-terms__section li + li,
.page-privacy__section li + li {
	margin-top: 0.35rem;
}

.page-app-privacy__contact,
.page-terms__contact,
.page-privacy__contact {
	margin: 0 0 1rem;
	line-height: 1.75;
}

.page-app-privacy__contact a,
.page-terms__contact a,
.page-privacy__contact a {
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.page-app-privacy__contact a:hover,
.page-terms__contact a:hover,
.page-privacy__contact a:hover {
	color: var(--color-primary-hover);
}

.page-app-privacy__enacted,
.page-terms__enacted,
.page-privacy__enacted {
	margin: 0;
	font-size: 0.9rem;
	color: #555555;
}

/* ===== page-faq（よくある質問） ===== */

.page-faq.site-main {
	padding-top: 0;
	padding-bottom: 0;
}

.page-faq .post-archive-cover--page {
	overflow: hidden;
}

.page-faq__band {
	background: #ffffff;
}

.page-faq__intro {
	margin: 0 auto;
	padding: clamp(1.5rem, 1rem + 1.5vw, 2.25rem) 0 clamp(1rem, 0.75rem + 1vw, 1.5rem);
}

.page-faq__intro p {
	margin: 0 0 1rem;
	line-height: 1.75;
	color: #333333;
}

.page-faq__intro p:last-child {
	margin-bottom: 0;
}

.page-faq__intro a {
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.page-faq__category {
	margin: 0 auto;
	padding: clamp(1.25rem, 1rem + 1vw, 2rem) 0;
	scroll-margin-top: 5rem;
}

.page-faq__category > .page-heading + .kabepita-faq {
	margin-top: clamp(1rem, 0.75rem + 1vw, 1.75rem);
}

#contact {
	scroll-margin-top: 5rem;
}

.kabepita-faq-jump {
	margin-bottom: clamp(1.5rem, 1.25rem + 1vw, 2rem);
}

.kabepita-faq-jump__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.kabepita-faq-jump__list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	width: 100%;
	min-height: 44px;
	padding: 0.7rem 0.9rem;
	border-radius: 9999px;
	border: 1px solid #e5e5e5;
	background: #ffffff;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03);
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease;
	font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.15rem);
	font-weight: 800;
	color: #333333;
	text-decoration: none;
}

.kabepita-faq-jump__list a:hover {
	color: #0f766e;
	border-color: color-mix(in srgb, var(--color-primary) 35%, #e8e8e8);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
	transform: translateY(-1px);
}

.kabepita-faq-jump__list a:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--color-primary) 35%, #ffffff);
	outline-offset: 2px;
}

.kabepita-faq-jump__icon {
	font-size: 1.25rem;
	color: var(--color-primary);
}

@media (width >= 560px) {
	.kabepita-faq-jump__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem 0.9rem;
	}
}

@media (width >= 820px) {
	.kabepita-faq-jump__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.75rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.kabepita-faq-jump__list a {
		transform: none !important;
		transition-duration: 0.01ms;
	}
}

.kabepita-faq {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.kabepita-faq__item {
	border: 1px solid #e2e2e2;
	margin-bottom: 1.5rem;
}

.kabepita-faq__item:last-child {
	margin-bottom: 0;
}

.kabepita-faq__question {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	margin: 0;
	padding: 0.85rem 2.75rem 0.85rem 0.85rem;
	box-sizing: border-box;
	font: inherit;
	text-align: left;
	background: #eeeeee;
	border: none;
	cursor: pointer;
	position: relative;
	font-size: clamp(1rem, 0.95rem + 0.2vw, 1.2rem);
	font-weight: 700;
	color: #333333;
	line-height: 1.45;
}

.kabepita-faq__q-badge {
	flex-shrink: 0;
	width: 30px;
	height: 30px;
	line-height: 30px;
	text-align: center;
	font-size: 0.9rem;
	font-weight: 800;
	color: #ffffff;
	background: #e53935;
	border-radius: 50%;
}

.kabepita-faq__q-label {
	flex: 1;
	min-width: 0;
}

.kabepita-faq__toggle {
	position: absolute;
	top: 50%;
	right: 0.65rem;
	transform: translateY(-50%);
	width: 2rem;
	height: 2rem;
	line-height: 2rem;
	text-align: center;
	font-weight: 900;
	color: #e53935;
	font-size: 1.25rem;
}

.kabepita-faq__toggle::after {
	content: "＋";
	transition: opacity 0.25s ease;
}

.kabepita-faq__item.is-open .kabepita-faq__toggle::after {
	content: "－";
}

.kabepita-faq__answer {
	margin: 0;
	line-height: 1.75;
	color: #333333;
	background: #ffffff;
	padding: 1rem 1rem 1.1rem;
	overflow: hidden;
	transition:
		max-height 0.55s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.4s ease,
		padding 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.kabepita-faq__item:not(.is-open) .kabepita-faq__answer {
	max-height: 0;
	opacity: 0;
	padding: 0 1rem;
	pointer-events: none;
}

.kabepita-faq__item.is-open .kabepita-faq__answer {
	max-height: min(120vh, 100rem);
	opacity: 1;
	padding: 1rem 1rem 1.1rem;
	pointer-events: auto;
}

.kabepita-faq__answer p {
	margin: 0 0 0.75rem;
}

.kabepita-faq__answer p:last-child {
	margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
	.kabepita-faq__answer,
	.kabepita-faq__toggle {
		transition-duration: 0.01ms;
	}
}

.kabepita-faq__ext-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.kabepita-faq__ext-link:hover {
	color: var(--color-primary-hover);
}

.kabepita-faq__ext-icon {
	font-size: 1.1rem;
	line-height: 1;
}

.kabepita-faq-contact {
	background-color: #f6f6f6;
	padding: clamp(2rem, 1.5rem + 2vw, 3rem) 0 clamp(2.5rem, 2rem + 2vw, 4rem);
	margin-top: clamp(1rem, 0.5rem + 1.5vw, 2rem);
}

.kabepita-faq-contact__inner {
	margin: 0 auto;
}

.kabepita-faq-contact .page-heading {
	margin-bottom: clamp(1rem, 0.85rem + 0.6vw, 1.5rem);
}

.kabepita-faq-contact__lead {
	margin: 0 0 0.75rem;
	text-align: center;
	line-height: 1.75;
	color: #333333;
}

.kabepita-faq-contact__form {
	margin-top: clamp(1.25rem, 1rem + 1vw, 2rem);
}

.kabepita-faq-contact__placeholder {
	margin: 0 0 1rem;
	padding: 1rem;
	background: #fff8e6;
	border: 1px solid #e6d9a8;
	border-radius: 3px;
	font-size: 0.9rem;
	line-height: 1.6;
	color: #5c4a21;
}

.kabepita-faq-contact__code {
	overflow-x: auto;
	padding: 1rem;
	font-size: 0.8rem;
	line-height: 1.5;
	background: #ffffff;
	border: 1px solid #e5e5e5;
	border-radius: 3px;
}

/* contact-form（提示HTMLのMW WP Form出力テンプレ構造） */
.kabepita-faq-contact .contact-form {
	width: 100%;
	margin: 0 auto;
}

.kabepita-faq-contact .contact-form__inner {
	margin: 0;
}

.kabepita-faq-contact .contact-form__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.4rem;
	align-items: start;
	margin: 0 0 1rem;
}

.kabepita-faq-contact .contact-form__label {
	font-weight: 800;
	color: #333333;
}

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

/* 必須バッジ（会社名以外） */
.kabepita-faq-contact .contact-form__label label[for="namae"]::after,
.kabepita-faq-contact .contact-form__label label[for="email"]::after,
.kabepita-faq-contact .contact-form__label label[for="tel"]::after,
.kabepita-faq-contact .contact-form__label label[for="ask"]::after {
	content: "必須";
	display: inline-block;
	padding: 0.1em 0.5em;
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1.2;
	color: #ffffff;
	background: #e53935;
	border-radius: 4px;
}

.kabepita-faq-contact  .contact-form__field{
	margin-left: 0;
}

.kabepita-faq-contact .contact-form__field input,
.kabepita-faq-contact .contact-form__field textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 0.75rem;
	border: 1px solid #cccccc;
	background: #ffffff;
	font: inherit;
}

.kabepita-faq-contact .contact-form__field textarea {
	min-height: 8rem;
	resize: vertical;
}

.kabepita-faq-contact .contact-form__agree {
	margin: 1.25rem 0 0;
	line-height: 1.75;
	font-size: 0.95rem;
	color: #333333;
	text-align: center;
}

.kabepita-faq-contact .contact-form__agree a {
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.kabepita-faq-contact .contact-form__agree a:hover {
	color: var(--color-primary-hover);
}

.kabepita-faq-contact .contact-form__actions {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: flex;
	justify-content: center;
	gap: 0.75rem;
}

.kabepita-faq-contact .contact-form__send button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.8rem 2.5rem;
	font: inherit;
	font-weight: 800;
	color: #ffffff;
	background: var(--color-primary);
	border: none;
	border-radius: 9999px;
	cursor: pointer;
}

.kabepita-faq-contact .contact-form__send button:hover {
	background: var(--color-primary-hover);
}

.kabepita-faq-contact .contact-form__back {
	display: none; /* ここでは「戻る」ボタンを表示しない想定 */
}

/* 常に縦並び（項目→入力欄）にするため、レスポンシブ切替は不要 */

/* MW WP Form（FAQ お問い合わせ） */
.kabepita-faq-contact .mw_wp_form {
	font-size: 0.95rem;
}

.kabepita-faq-contact .mw_wp_form table,
.kabepita-faq-contact .mw_wp_form .mwform-form-table {
	width: 100%;
	border-collapse: collapse;
}

.kabepita-faq-contact .mw_wp_form th,
.kabepita-faq-contact .mw_wp_form td {
	display: block;
	width: 100%;
	padding: 0 0 0.75rem;
	text-align: left;
	font-weight: 400;
}

.kabepita-faq-contact .mw_wp_form th {
	padding-top: 0.5rem;
	font-weight: 700;
	color: #333333;
}

.kabepita-faq-contact .mw_wp_form input[type="text"],
.kabepita-faq-contact .mw_wp_form input[type="email"],
.kabepita-faq-contact .mw_wp_form input[type="tel"],
.kabepita-faq-contact .mw_wp_form input[type="url"],
.kabepita-faq-contact .mw_wp_form textarea,
.kabepita-faq-contact .mw_wp_form select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 0.75rem;
	font: inherit;
	border: 1px solid #cccccc;
	background: #ffffff;
}

.kabepita-faq-contact .mw_wp_form textarea {
	min-height: 10rem;
	resize: vertical;
}

.kabepita-faq-contact .mw_wp_form .mwform-checkbox-field label,
.kabepita-faq-contact .mw_wp_form .horizontal-item label {
	display: inline-flex;
	align-items: flex-start;
	cursor: pointer;
	line-height: 1.5;
}

.kabepita-faq-contact .mw_wp_form input[type="submit"],
.kabepita-faq-contact .mw_wp_form button[type="submit"] {
	display: block;
	margin: 1.25rem auto 0;
	padding: 0.75rem 2.5rem;
	font: inherit;
	font-weight: 700;
	color: #ffffff;
	background: var(--color-primary);
	border: none;
	border-radius: 9999px;
	cursor: pointer;
}

.kabepita-faq-contact .mw_wp_form input[type="submit"]:hover,
.kabepita-faq-contact .mw_wp_form button[type="submit"]:hover {
	background: var(--color-primary-hover);
}

.kabepita-faq-contact .mw_wp_form .mwform-required {
	display: inline-block;
	margin-left: 0.35rem;
	padding: 0.1em 0.45em;
	font-size: 0.7rem;
	font-weight: 700;
	color: #ffffff;
	background: #e53935;
	border-radius: 3px;
	vertical-align: 0.1em;
}

/* ===== page-support（使用方法） ===== */

.page-support {
	--ps-arrow: clamp(18px, 2.2vw, 22px);
	--ps-flow-col-gap: 1.25rem;
	--ps-flow-row-gap: 1.125rem;
	--ps-space-youtube: clamp(1.35rem, 1rem + 1.2vw, 2rem);
	--ps-space-section: clamp(1.15rem, 0.9rem + 0.9vw, 1.75rem);
	--ps-space-block-y: clamp(1.35rem, 1rem + 1.15vw, 2.15rem);
	--ps-space-between: clamp(1.2rem, 0.95rem + 0.85vw, 1.85rem);
	--ps-fz-block-title: clamp(1.3rem, 1.12rem + 0.65vw, 1.7rem);
	--ps-fz-subttl: clamp(1.03rem, 0.92rem + 0.28vw, 1.125rem);
	--ps-fz-note: clamp(0.875rem, 0.84rem + 0.1vw, 0.9375rem);
	--ps-fz-youtube-ttl: clamp(1.03rem, 0.92rem + 0.28vw, 1.125rem);
	--ps-line-tight: 1.6;
	--ps-line-body: 1.65;
}

.page-support.site-main {
	padding-top: 0;
	padding-bottom: 0;
}

.page-support .post-archive-cover--page {
	overflow: hidden;
}

.page-support .post-archive-cover--page .post-archive-cover__title {
	font-size: clamp(1.65rem, 1.15rem + 2vw, 2.05rem);
}

/* ジャンプナビ付き h2：全体の文字サイズ・余白に合わせる */
.page-support .page-heading {
	font-size: clamp(1.2rem, 1.05rem + 0.48vw, 1.42rem);
	padding-top: clamp(0.5rem, 0.35rem + 0.5vw, 1rem);
	padding-bottom: clamp(0.7rem, 0.55rem + 0.45vw, 1.05rem);
}

.page-support__band {
	background: #ffffff;
	overflow: hidden;
}

.page-support__band .site-container{
	padding-bottom: clamp(1.5rem, 1.1rem + 1.2vw, 2.75rem);
}

.page-support__youtube {
	padding: var(--ps-space-youtube) 0;
}

.page-support__youtube-ttl {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	margin: 0 0 var(--space-4);
	font-size: var(--ps-fz-youtube-ttl);
	font-weight: 900;
	line-height: var(--ps-line-tight);
	color: #333333;
}

.page-support__youtube-ttl span{
    color: #ff0000;	
}

.page-support__video {
	max-width: 52rem;
	margin: 0 auto;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
	background: #000;
}

.page-support__video iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.page-support__section {
	padding: var(--ps-space-section) 0;
}

.page-support-jump__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-3);
	margin: var(--space-4) 0 0;
	padding: 0;
	list-style: none;
}

.page-support-jump__list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	width: 100%;
	min-height: 44px;
	padding: 0.7rem 0.95rem;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--color-primary) 18%, #e5e5e5);
	background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	box-shadow:
		0 1px 0 rgba(0, 0, 0, 0.04),
		0 10px 24px rgba(2, 6, 23, 0.06);
	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease,
		background 0.25s ease;
	font-size: clamp(0.9375rem, 0.88rem + 0.22vw, 1.0625rem);
	font-weight: 800;
	line-height: var(--ps-line-tight);
	color: #333333;
	text-decoration: none;
}

.page-support-jump__list a:hover {
	color: #0f766e;
	border-color: color-mix(in srgb, var(--color-primary) 45%, #e8e8e8);
	background: linear-gradient(180deg, #ffffff 0%, color-mix(in srgb, var(--color-primary) 10%, #f8fafc) 100%);
	box-shadow:
		0 2px 0 rgba(0, 0, 0, 0.05),
		0 16px 34px rgba(2, 6, 23, 0.12);
	transform: translateY(-1px);
}

.page-support-jump__list a:active {
	transform: translateY(0);
	box-shadow:
		0 1px 0 rgba(0, 0, 0, 0.05),
		0 10px 22px rgba(2, 6, 23, 0.08);
}

.page-support-jump__list a:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--color-primary) 35%, #ffffff);
	outline-offset: 2px;
}

@media (width >= 560px) {
	.page-support-jump__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-3) var(--space-4);
	}
}

@media (width >= 820px) {
	.page-support-jump__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.page-support-jump__list:not(.page-support-jump__list--first) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.page-support__block {
	margin-top: clamp(1.5rem, 1.1rem + 1.5vw, 2.65rem);
	padding: clamp(4.75rem, 5vw, 4.5rem) 0;
	position: relative;
	background: transparent;
	scroll-margin-top: 5rem;
	z-index: 1;
}

.page-support__block::before {
	content: "";
	position: absolute;
	inset: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	background: #f3fbfd;
	z-index: -1;
}

.page-support__block-title {
	margin: 0 0 var(--space-4);
	font-size: var(--ps-fz-block-title);
	line-height: var(--ps-line-tight);
}

.page-support__lead {
	margin: 0 0 var(--space-4);
	font-size: var(--fz-body);
	line-height: var(--ps-line-body);
}

.page-support__note {
	margin: 0 0 var(--space-4);
	font-size: var(--ps-fz-note);
	line-height: var(--ps-line-body);
}

.page-support__subblock {
	margin-top: var(--ps-space-between);
}

.page-support__subttl {
	margin: 0 0 var(--space-3);
	padding-left: var(--space-3);
	border-left: 4px solid var(--color-primary);
	font-size: var(--ps-fz-subttl);
	font-weight: 900;
	line-height: var(--ps-line-tight);
}

.page-support h3.page-support__block-title,
.page-support h3.page-support__subttl {
	margin-bottom: var(--space-6);
}

.page-support__grid--trick {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-4);
	align-items: start;
}

@media (width >= 820px) {
	.page-support__grid--trick {
		grid-template-columns: 300px 1fr;
		gap: var(--space-6);
	}
}

.page-support__figure img {
	border-radius: 3px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.page-support__check {
	margin: 0;
	padding-left: var(--space-5);
	font-size: var(--fz-body);
	line-height: var(--ps-line-body);
}

.page-support__ng-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-4);
	margin-top: var(--space-5);
}

@media (width >= 820px) {
	.page-support__ng-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.page-support__pill {
	display: inline-block;
	margin: 0 0 var(--space-2);
	padding: 0.55rem 0.8rem;
	border-radius: 3px;
	font-size: var(--ps-fz-note);
	font-weight: 700;
	line-height: var(--ps-line-tight);
}

.page-support__pill--danger {
	position: relative;
	color: #ffffff;
	background: #d54646;
}

.page-support__pill--danger::after {
	content: "";
	position: absolute;
	left: 1.15rem;
	bottom: -12px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 12px 10px 0 10px;
	border-color: #d54646 transparent transparent transparent;
}

.page-support__ng img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
}

.page-support__ng p {
	margin: var(--space-2) 0 var(--space-5);
	font-size: var(--ps-fz-note);
	line-height: var(--ps-line-tight);
	display: block;
}

/* モバイル：ステップを横並び＋横スクロール（1列縦積みは見づらいため） */
.page-support__flow {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--space-3);
	margin-bottom: clamp(4.75rem, 5vw, 4.5rem);
	padding-bottom: var(--space-2);
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
}

.page-support__step {
	flex: 0 0 min(260px, 82vw);
	max-width: min(280px, 88vw);
	scroll-snap-align: start;
	scroll-snap-stop: normal;
}

@media (prefers-reduced-motion: reduce) {
	.page-support__flow {
		scroll-snap-type: none;
	}
}

@media (width >= 820px) {
	.page-support__flow {
		display: grid;
		align-items: start;
		justify-content: center;
		column-gap: 1.5rem;
		row-gap: var(--ps-flow-row-gap);
		overflow-x: visible;
		overflow-y: visible;
		scroll-snap-type: none;
		flex-wrap: unset;
		padding-bottom: 0;
	}

	.page-support__flow--3 {
		column-gap: var(--ps-flow-col-gap);
	}

	.page-support__flow--2 {
		column-gap: var(--ps-flow-col-gap);
	}

	.page-support__step {
		flex: unset;
		max-width: none;
		min-width: 0;
		scroll-snap-align: none;
	}
}

.page-support__step img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.1);
}

.page-support__step p {
	margin: var(--space-4) 0 0;
	font-size: var(--fz-body);
	line-height: var(--ps-line-body);
}

/* モバイルでも矢印を表示（横スクロール行のステップ間） */
.page-support__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	align-self: center;
	width: var(--ps-arrow);
	min-width: var(--ps-arrow);
	color: transparent; /* 中身の › は隠す */
	scroll-snap-align: start;
}

.page-support__arrow::before {
	content: "";
	width: 0;
	height: 0;
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
	border-left: 12px solid color-mix(in srgb, var(--color-primary) 70%, #0b3b2c);
	filter: drop-shadow(0 2px 1px rgba(0, 0, 0, 0.08));
}

@media (width >= 820px) {
	.page-support__arrow {
		align-self: start;
		scroll-snap-align: none;
		/* 縦長スクショ（約 296x640）に合わせて画像中央へ */
		margin-top: clamp(12rem, 18vw, 17rem);
	}

	.page-support__arrow::before {
		border-top: 10px solid transparent;
		border-bottom: 10px solid transparent;
		border-left: 16px solid color-mix(in srgb, var(--color-primary) 70%, #0b3b2c);
	}

	/* 矢印込みの列構成（HTMLは step と arrow が交互に並ぶ） */
	.page-support__flow {
		grid-template-columns: 1fr var(--ps-arrow) 1fr var(--ps-arrow) 1fr var(--ps-arrow) 1fr;
	}

	.page-support__flow--3 {
		grid-template-columns: 1fr var(--ps-arrow) 1fr var(--ps-arrow) 1fr;
	}

	.page-support__flow--2 {
		grid-template-columns: 1fr var(--ps-arrow) 1fr;
	}

	/*
	 * 2列フローで画像が大きすぎる場合：親幅における --3 と同じ1列幅になるよう全体幅を抑える
	 * step_w = (W - 2*arrow - 4*gap) / 3 のとき、2列+矢印1の幅 = (2W - arrow - 2*gap) / 3
	 */
	.page-support__flow--2.page-support__flow--match3 {
		max-width: calc((2 * 100% - var(--ps-arrow) - 2 * var(--ps-flow-col-gap)) / 3);
	}
}

@media (prefers-reduced-motion: reduce) {
	.page-support-jump__list a {
		transform: none !important;
		transition-duration: 0.01ms;
	}
}

/* .page-support__flow 横スクロールヒント（assets/js/scroll-hint.js）— 中央ダークカード */
.page-support__flow-scroll-wrap {
	position: relative;
}

.page-support__scroll-hint {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem;
	pointer-events: none;
	z-index: 2;
	opacity: 1;
	visibility: visible;
	transition:
		opacity 0.28s ease,
		visibility 0.28s ease;
}

.page-support__scroll-hint.is-hidden {
	opacity: 0;
	visibility: hidden;
}

.page-support__scroll-hint-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.65rem 1.1rem 0.55rem;
	max-width: min(11rem, 78vw);
	border-radius: 10px;
	background: rgba(0, 0, 0, 0.64);
	color: #ffffff;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
	animation: page-support-scroll-hint-pulse 2.1s ease-in-out infinite;
}

.page-support__scroll-hint-icons {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.05rem;
	line-height: 1;
}

.page-support__scroll-hint-arrow,
.page-support__scroll-hint-hand {
	font-size: 1.75rem;
	font-variation-settings:
		"FILL" 0,
		"wght" 400,
		"GRAD" 0,
		"opsz" 24;
	color: #ffffff;
}

.page-support__scroll-hint-arrow {
	font-size: 1.45rem;
	opacity: 0.98;
}

.page-support__scroll-hint-hand {
	font-size: 1.85rem;
	margin-top: -0.1rem;
}

.page-support__scroll-hint-label {
	font-family: var(--font-sans);
	font-size: clamp(0.7rem, 0.62rem + 0.2vw, 0.8125rem);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.04em;
	color: #ffffff;
	white-space: nowrap;
}

@keyframes page-support-scroll-hint-pulse {
	0%,
	100% {
		transform: scale(1);
		opacity: 1;
	}
	50% {
		transform: scale(1.03);
		opacity: 0.94;
	}
}

@media (prefers-reduced-motion: reduce) {
	.page-support__scroll-hint-card {
		animation: none;
	}
}

@media (width >= 820px) {
	.page-support__scroll-hint {
		display: none !important;
	}
}

/* ===== page-features（アプリ機能） mobile-first ===== */

.page-features__inner {
	padding-top: clamp(1.75rem, 1.35rem + 1.2vw, 2.75rem);
	padding-bottom: clamp(2rem, 1.55rem + 1.4vw, 3rem);
}

.page-features.site-main {
	padding-top: 0;
	padding-bottom: 0;
}

.page-features .post-archive-cover--page {
	overflow: hidden;
}

.page-features__band {
	background: #ffffff;
	overflow: hidden;
}

.page-features__jump {
	margin: clamp(1rem, 0.75rem + 1vw, 1.75rem) 0 clamp(1.25rem, 1rem + 1vw, 2rem);
}

.page-features__jump-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.page-features__jump-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	width: 100%;
	min-height: 44px;
	padding: 0.7rem 0.95rem;
	border-radius: 9999px;
	border: 1px solid color-mix(in srgb, var(--color-primary) 18%, #e5e5e5);
	background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
	box-shadow:
		0 1px 0 rgba(0, 0, 0, 0.04),
		0 10px 24px rgba(2, 6, 23, 0.06);
	font-size: clamp(0.9375rem, 0.88rem + 0.22vw, 1.0625rem);	
	font-weight: 800;
	line-height: 1.45;
	color: #333333;
	text-decoration: none;
	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		background 0.2s ease;
}

.page-features__jump-list a:hover {
	color: #0f766e;
	border-color: color-mix(in srgb, var(--color-primary) 45%, #e8e8e8);
	background: linear-gradient(180deg, #ffffff 0%, color-mix(in srgb, var(--color-primary) 10%, #f8fafc) 100%);
	box-shadow:
		0 2px 0 rgba(0, 0, 0, 0.05),
		0 16px 34px rgba(2, 6, 23, 0.12);
	transform: translateY(-1px);
}

.page-features__jump-list a:active {
	transform: translateY(0);
	box-shadow:
		0 1px 0 rgba(0, 0, 0, 0.05),
		0 10px 22px rgba(2, 6, 23, 0.08);
}

.page-features__jump-list a:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--color-primary) 35%, #ffffff);
	outline-offset: 2px;
}

.page-features__jump-list .material-symbols-outlined {
	font-size: 1.25rem;
}

@media (width >= 560px) {
	.page-features__jump-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.page-features__section {
	padding: clamp(1.25rem, 1rem + 1vw, 2rem) 0;
	scroll-margin-top: 5rem;
}

.page-features .page-heading {
	margin: 0 0 var(--space-4);
}

.page-features__lead {
	margin: 0 0 var(--space-5);
	font-size: var(--fz-body);
	line-height: 1.75;
	color: var(--color-text);
}

.page-features__table-scroll {
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	margin: 0 0 var(--space-6);
	border-radius: 3px;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

.page-features__table {
	width: 100%;
	min-width: 34rem;
	border-collapse: collapse;
	font-size: clamp(0.875rem, 0.82rem + 0.15vw, 0.9375rem);
	line-height: 1.55;
	background: #ffffff;
}

.page-features__table th,
.page-features__table td {
	padding: 0.65rem 0.75rem;
	border: 1px solid #d8dee6;
	text-align: center;
	vertical-align: middle;
	white-space: nowrap;
}

.page-features__table thead th {
	background: color-mix(in srgb, var(--color-primary) 12%, #f8fafc);
	font-weight: 800;
	color: #1e293b;
}

.page-features__table tbody th[scope="row"] {
	text-align: left;
	font-weight: 700;
	background: #fafbfc;
	color: #334155;
}

.page-features__section--intro .page-features__note {
	margin: 0 0 var(--space-6);
	font-size: var(--ps-fz-note, 0.9375rem);
	line-height: 1.65;
}

.page-features__heading--left {
	margin: 0 0 var(--space-4);
	padding: 0 0 0.5rem 0.75rem;
	border: none;
	border-left: 4px solid var(--color-primary);
	border-bottom: 1px solid #e5e5e5;
	font-size: clamp(1.125rem, 1rem + 0.45vw, 1.35rem);
	font-weight: 700;
	text-align: left;
	color: var(--color-text);
}

.page-features__heading--left::after {
	display: none;
}

.page-features__intro-block {
	margin: 0;
}

.page-features__intro-title {
	margin: 0 0 var(--space-2);
	font-size: clamp(1.05rem, 0.95rem + 0.35vw, 1.2rem);
	text-align: center;
}

.page-features__update-tag {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 700;
	color: #dc2626;
	height: 22px;
	text-align: center;
}

.page-features__intro-grid--3 .page-features__intro-caption {
	margin: var(--space-4) 0 var(--space-3);
}

.page-features__intro-grid--3 .page-features__intro-figure {
	margin: 0 auto 0;
}

.page-features__intro-figure {
	margin: 0 auto var(--space-3);
	max-width: 280px;
	text-align: center;
}

.page-features__intro-figure img {
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.page-features__intro-caption {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.65;
	text-align: center;
}

.page-features__intro-grid,
.page-features__intro-grid--3 {
	display: grid;
	gap: clamp(5rem, 1rem + 1vw, 2rem);
	margin: 0 0 clamp(5rem, 1.2rem + 1vw, 2.25rem);
}
.page-features__intro-grid:last-of-type,
.page-features__intro-grid--3:last-of-type{
	margin-bottom: 0;
}

@media (width >= 820px) {
	.page-features__intro-grid,
	.page-features__intro-grid--3 {
		margin-bottom: clamp(2.75rem, 2.2rem + 1.4vw, 3.5rem);
	}

	.page-features__intro-grid--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: stretch;
	}
	.page-features__intro-grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: stretch;
	}
}

.page-features__intro-block--soft {
	border-radius: 3px;
}

.page-features__cta-wrap {
	margin: clamp(1.75rem, 1.35rem + 1.2vw, 2.5rem) 0 0;
	text-align: center;
}

.page-features__catalog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	margin-top: var(--space-6);
}

@media (width >= 640px) {
	.page-features__catalog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (width >= 1024px) {
	.page-features__catalog-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.page-features__catalog-card {
	margin: 0;
	padding: var(--space-5);
	border: 1px solid #c3c3c3;
	border-radius: 3px;
	background: #ffffff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.page-features__catalog-brand {
	margin: 0 0 var(--space-2);
	padding-bottom: 0.35rem;
	border-bottom: 2px solid color-mix(in srgb, var(--color-primary) 40%, #e2e8f0);
	font-size: 1.25rem;
	font-weight: 700;
	color: #334155;
}

.page-features__catalog-series {
	font-family: var(--font-strong);
	margin: 0 0 var(--space-3);
	font-size: 1.05rem;
	line-height: 1.35;
}

.u-catalog-items,
.page-features__catalog-items {
	display: grid;
	gap: var(--space-4);
}

.u-catalog-item,
.page-features__catalog-item {
	font-family: var(--font-strong);
	display: grid;
	grid-template-columns: min(124px, 30%) minmax(0, 1fr);
	column-gap: clamp(1.2rem, 1rem + 0.9vw, 1.85rem);
	row-gap: 0.45rem;
	align-items: center;
}

.u-catalog-item img,
.page-features__catalog-item img {
	width: 100%;
	height: auto;
	border-radius: 3px;
}

.u-catalog-item-text,
.page-features__catalog-item-text {
	min-width: 0;
	text-decoration: none;
	pointer-events: none;
}

.u-catalog-line,
.page-features__catalog-line {
	margin: 0 0 0.5rem;
	font-size: clamp(1rem, 0.92rem + 0.2vw, 1.0625rem);
	line-height: 1.45;
}

.u-catalog-range,
.page-features__catalog-range {
	margin: 0 0 var(--space-4);
	font-size: clamp(0.94rem, 0.88rem + 0.18vw, 1.03rem);
	line-height: 1.55;
}

.u-catalog-hl,
.page-features__hl {
	padding: 0 0.1em;
	background: linear-gradient(transparent 55%, rgba(251, 207, 232, 0.95) 0);
}

.u-catalog-sep,
.page-features__catalog-sep {
	margin: 0;
	border: none;
	height: 1px;
	background: #eeeeee;
}

.page-features__band .site-container,
.page-features__band .content-container {
	padding-bottom: clamp(2rem, 1.5rem + 1.5vw, 3rem);
}

/* ===== page-services（かべぴたとは） mobile-first ===== */

.page-services.site-main {
	padding-top: 0;
	padding-bottom: 0;
	/* 100vw の DX ブリードが縦スクロールバー分だけはみ出すのを隠す（画像は従来どおり画面半分） */
	overflow-x: hidden;
	overflow-x: clip;
}

.page-services__band {
	width: 100%;
	box-sizing: border-box;
}

.page-services__band--white {
	background: #ffffff;
}

.page-services__band--soft {
	background: #fbfbfb;
}

.page-services__band--gray {
	background: #f4f4f4;
}

.page-services__band--dark {
	color: #ffffff;
	background: linear-gradient(270deg, rgb(2, 3, 129) 0%, rgb(0, 13, 38) 100%);
}

.page-services__inner {
	padding-top: clamp(1.75rem, 1.35rem + 1.2vw, 2.75rem);
	padding-bottom: clamp(2rem, 1.55rem + 1.4vw, 3rem);
}

.page-services__inner--dark {
	padding-top: clamp(4rem, 1.6rem + 1.5vw, 3rem);
	padding-bottom: clamp(4rem, 1.85rem + 1.6vw, 3.75rem);
}

.page-services__section {
	margin: 0;
	padding: 0;
}

.page-services__section + .page-services__section {
	margin-top: clamp(4.25rem, 1.85rem + 1.6vw, 3.75rem);
}

.page-services__heading--center {
	margin: 0 0 var(--space-6);
}

.page-services__split {
	display: grid;
	gap: clamp(1.25rem, 1rem + 1vw, 2rem);
	align-items: center;
	margin-top: 0;
}

.page-services__split-text {
	min-width: 0;
}

.page-services__split-figure,
.page-services__cover {
	margin: 0;
}

.page-services__split-figure img,

.page-services__cover img {
	width: 100%;
	height: auto;
}

.page-services__split-figure figcaption {
	margin-top: 0.6rem;
	font-size: 0.85rem;
	line-height: 1.5;
	text-align: center;
}

.page-services__split--reverse {
	grid-auto-flow: dense;
}

.page-services__split--purpose {
	align-items: start;
	gap: clamp(1.75rem, 1.35rem + 1.6vw, 2.75rem);
	margin-top: clamp(1.25rem, 0.95rem + 1.2vw, 2rem);
}

/* スマホでは「画像→コピー」の順にする */
.page-services__split--purpose > :first-child {
	order: 2;
}

.page-services__split--purpose > :last-child {
	order: 1;
}

.page-services__purpose-copy {
	min-width: 0;
	margin-top: 30px;
}

.page-services__point {
	position: relative;
	margin: 1.1rem 0 1rem;
	padding: 1.2rem 1rem 1.2rem;
	border: 1px solid rgba(79, 190, 151, 0.5);
	border-radius: 0;
	background: #ffffff;
	box-shadow: 15px 8px 0 0 rgba(79, 190, 151, 0.5);
}

.page-services__point-badge {
	position: absolute;
	top: -23px;
	left: 0;
	margin: 0;
	padding: 0.3rem 0.65rem;
	border-radius: 5px 5px 0 0;
	background: #4fbe97;
	color: #ffffff;
	font-weight: 900;
	letter-spacing: 0.08em;
	font-size: 0.875rem;
	line-height: 1;
}

.page-services__point-text {
	margin: 0;
	font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem);
	line-height: 1.6;
	color: #0f172a;
	font-weight: 700;
}

.page-services__purpose-arrow {
	margin: clamp(1.25rem, 1rem + 1.2vw, 2rem) 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #39b7a6;
}

.page-services__purpose-arrow .material-symbols-outlined {
	font-size: 2.25rem;
	font-variation-settings:
		"FILL" 0,
		"wght" 500,
		"GRAD" 0,
		"opsz" 24;
}

.page-services__purpose-visual {
	margin: 0;
}

.page-services__purpose-visual-img {
	width: 100%;
	height: auto;
}

.page-services__lead {
	margin: 0 0 var(--space-4);
	font-size: clamp(1.1rem, 1rem + 0.35vw, 1.25rem);
	font-weight: 700;
	line-height: 1.55;
	color: var(--color-text);
}

.page-services__desc {
	margin: 0 0 var(--space-3);
	font-size: var(--fz-body);
	line-height: 1.75;
	color: var(--color-text);
}

.page-services__hl {
	padding: 0 0.12em;
	background: linear-gradient(transparent 60%, rgba(255, 241, 0, 0.7) 0);
	font-weight: 700;
}

.page-services__topic {
	margin: 0 0 var(--space-3);
	padding: 0 0 0.55rem 0.75rem;
	border-left: 4px solid var(--color-primary);
	font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem);
	line-height: 1.45;
	color: var(--color-text);
}

.page-services__topic-ai {
	font-weight: 900;
	letter-spacing: 0.02em;
}

.page-services__list {
	margin: 0;
	padding-left: 1.1rem;
	display: grid;
	gap: 0.4rem;
	color: var(--color-text);
}

.page-services__dx {
	display: grid;
	gap: clamp(2rem, 1.4rem + 2vw, 3.25rem);
	margin-top: clamp(1.25rem, 0.95rem + 1.2vw, 2rem);
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

/* DXセクション（添付レイアウト寄せ）：画像は面で見せ、テキストに余白 */
.page-services__split--dx {
	gap: 0;
	align-items: stretch;
	background: #ffffff;
	box-sizing: border-box;
}

.page-services__split--dx > .page-services__cover {
	order: 1;
}

.page-services__split--dx > .page-services__split-text {
	order: 2;
}

.page-services__split--dx .page-services__split-text {
	padding: clamp(1.5rem, 1.15rem + 1.4vw, 2.75rem);
    padding-left: 0;
}

.page-services__split--dx .page-services__cover {
	min-width: 0;
	min-height: 400px;
	overflow: hidden;
}

.page-services__split--dx .page-services__cover img {
	height: 400px;
	object-fit: cover;
	object-position: center;
}

@media (width >= 820px) {
	.page-services__split--dx {
		/* 画面幅で左右50%（画像はビューポート半分）— はみ出しは .page-services.site-main で clip */
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		grid-template-columns: 50vw minmax(0, 1fr);
		max-width: none;
	}

	/* PCでは2段目のみ左右反転（スマホは常に 画像→テキスト） */
	.page-services__split--dx.page-services__split--reverse > .page-services__cover {
		order: 2;
	}

	.page-services__split--dx.page-services__split--reverse > .page-services__split-text {
		order: 1;
	}

	.page-services__split--dx .page-services__split-text {
		padding-top: clamp(1.75rem, 1.35rem + 1.6vw, 3rem);
		padding-bottom: clamp(1.75rem, 1.35rem + 1.6vw, 3rem);
		padding-left: var(--container-pad-x);
		padding-right: var(--container-pad-x);
		max-width: 38rem;
	}

	/* 1段目（画像左→テキスト右）：画像との距離をもっと取る */
	.page-services__split--dx:not(.page-services__split--reverse) .page-services__split-text {
		padding-left: clamp(2.5rem, 2rem + 1.8vw, 4.25rem);
	}

	/* 2段目（画像右→テキスト左）：「画像に向かって寄せる」= 画像側の余白を減らす */
	.page-services__split--dx.page-services__split--reverse .page-services__split-text {
		margin-left: auto;
		padding-left: clamp(2.25rem, 1.75rem + 1.6vw, 3.75rem);
		padding-right: clamp(1.25rem, 1rem + 0.9vw, 2rem);
	}

	.page-services__dx {
		gap: 0;
	}
}

.page-services__recommend {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1rem, 0.8rem + 1vw, 1.6rem);
	margin-top: clamp(1.25rem, 0.95rem + 1.2vw, 2rem);
}

.page-services__recommend-card {
	overflow: hidden;
	padding: 0;
	border-radius: 10px;
	border: 1px solid #e5e5e5;
	background: #ffffff;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06);
	display: grid;
	grid-template-rows: auto 1fr auto;
}

.page-services__recommend-head {
    margin: 0;
    width: 100%;
    padding: 0.85rem 1rem;
    background: #2f2f2f;
    color: #ffffff;
    font-weight: 600;
    line-height: 1.45;
    position: relative;
    text-align: center;
    font-size: 0.85rem;
}

.page-services__recommend-head::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -10px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-top: 10px solid #2f2f2f;
}

.page-services__recommend-card img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 160px;
	margin: var(--space-4) auto;
}

.page-services__recommend-tag {
	margin: 0;
	padding: 0.8rem 1rem;
	border-radius: 0;
	background: var(--color-primary);
	color: #ffffff;
	font-size: 0.85rem;
	text-align: center;
}

@media (width >= 560px) {
	.page-services__recommend {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.page-services__ai-hero {
	display: grid;
	gap: clamp(1.25rem, 1rem + 1vw, 2rem);
	align-items: center;
	margin-bottom: clamp(1.75rem, 1.35rem + 1.2vw, 2.75rem);
}

/* スマホ：見出し → 脳＋スマホ画像 */
.page-services__ai-hero-text {
	order: 1;
}

.page-services__ai-hero-figure {
	order: 2;
	margin: 0;
}

.page-services__ai-hero-figure img {
	width: 100%;
	max-width: 520px;
	margin: 0 auto;
	display: block;
	height: auto;
	border-radius: 0;
}

.page-services__ai-title {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 var(--space-5);
	font-size: clamp(1.35rem, 1.1rem + 0.95vw, 2rem);
	font-weight: 900;
	line-height: 1.3;
	text-align: center;
}

.page-services__ai-title-line {
	flex: 1 1 auto;
	height: 1px;
	background: rgba(255, 255, 255, 0.55);
	min-width: 0.75rem;
}

.page-services__ai-title-text {
	flex: 0 1 auto;
}

.page-services__ai-sub {
	margin: 0;
	font-size: clamp(1rem, 0.92rem + 0.35vw, 1.3rem);
	font-weight: 700;
	text-align: center;
	line-height: 1.45;
}

.page-services__ai-sub a {
	color: #fcf16e;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.page-services__ai-sup {
	font-size: 0.65em;
	font-weight: 700;
	vertical-align: super;
	margin-left: 0.05em;
}

.page-services__ai-body {
	display: grid;
	gap: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
	align-items: start;
}

.page-services__ai-body-text {
	text-align: center;
}

.page-services__ai-body-text > p:first-of-type {
	margin: 0 0 var(--space-4);
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.92);
	text-align: left;
}

.page-services__ai-external {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.65;
	text-align: right;
}

.page-services__ai-external-icon {
	font-size: 1.1rem;
	vertical-align: -0.2em;
	margin-right: 0.25rem;
}

.page-services__ai-external a {
	color: #fcf16e;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.page-services__ai-external a:hover {
	color: #bae6fd;
}

.page-services__ai-meta {
	font-size: 0.9rem;
	opacity: 0.95;
	text-align: right;
	margin-top: 0;
}

.page-services__ai-cta {
	margin: var(--space-4) 0 0;
	text-align: center;
}

.page-services__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	min-height: 48px;
	padding: 0.65rem 1.5rem;
	border: 1px solid #d4c84a;
	border-radius: 9999px;
	background: #fcf16e;
	color: #0f172a;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
	overflow: hidden;
	position: relative;
	z-index: 2;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.page-services__btn > * {
	position: relative;
	z-index: 1;
}

.page-services__btn::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	width: 100%;
	padding-top: 100%;
	height: 0;
	margin: auto;
	background: #fff;
	border-radius: 50%;
	opacity: 0;
	pointer-events: none;
	z-index: 0;
	transform: translateY(-50%) scale(0.1);
	transition: opacity 0.2s, transform 0s;
	transition-delay: 0s, 0.2s;
}

.page-services__btn:hover {
	color: #0f172a;
	border-color: #0f172a;
	background: #fcf16e;
}

.page-services__btn:hover::after {
	opacity: 1;
	transform: translateY(-50%) scale(1.1);
	transition-delay: 0s;
	transition: opacity 0.2s, transform 0.2s ease-in-out;
}

.page-services__btn:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.page-services__btn-icon {
	font-size: 1.75rem;
	line-height: 1;
}

.page-services__ai-body-figure {
	margin: 0;
}

.page-services__ai-body-figure img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	border: 1px solid rgba(0, 0, 0, 0.35);
}

.page-services__ai-body-figure figcaption {
	margin-top: 0.65rem;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.9);
	text-align: center;
}

.page-services__alert {
	margin: 0;
	color: #b60000;
}

.page-services__cloth-defs {
	margin-top: clamp(1.75rem, 1.35rem + 1.2vw, 2.75rem);
	display: grid;
	gap: clamp(1.25rem, 1rem + 1vw, 1.75rem);
}

.page-services__cloth-title {
	margin: 0 0 var(--space-3);
	padding: 0 0 0.6rem;
	border-bottom: 1px dotted #111827;
	font-size: 1.25rem;
	font-weight: 900;
}

.page-services__cloth-def p {
	margin: 0 0 var(--space-3);
	line-height: 1.8;
}

.page-services__release-figure {
	margin: 0 auto var(--space-6);
	max-width: 420px;
}

.page-services__release-figure img {
	width: 100%;
	height: auto;
}

.page-services__release-card {
	font-family: var(--font-serif);
	background: #ffffff;
	border-radius: 12px;
	padding: clamp(2rem, 0.85rem + 0.8vw, 1.6rem);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
}

.page-services__release-card p {
	font-size: 0.95rem;
	margin: 0 0 var(--space-5);
	line-height: 1.9;
	text-indent: 1em;
}

.page-services__release-card p strong{
	font-size: 1.15rem;
}

.page-services__release-note {
	font-size: 0.9rem;
}

.page-services__release-portrait {
	margin: 0 auto var(--space-6);
	max-width: 280px;
}

.page-services__release-portrait img {
	width: 100%;
	height: auto;
}

.page-services__release-sign {
	text-align: right;
	margin: var(--space-4) 0 0;
}

.page-services__release-sign img {
	vertical-align: middle;
}

@media (width >= 820px) {
	.page-services__split {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: center;
	}

	.page-services__split--purpose {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		align-items: center;
	}

	/* 用途セクションは「左=コピー、右=画像」に固定 */
	.page-services__split--purpose > :first-child {
		order: 1 !important;
		margin-top: 0;
	}

	.page-services__split--purpose > :last-child {
		order: 2 !important;
	}

	.page-services__split--reverse > :first-child {
		order: 2;
	}

	.page-services__split--reverse > :last-child {
		order: 1;
	}

	.page-services__recommend {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.page-services__ai-hero {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	}

	.page-services__ai-hero-figure {
		order: 0;
	}

	.page-services__ai-hero-text {
		order: 0;
	}

	.page-services__ai-hero-figure img {
		max-width: none;
		margin: 0;
	}

	.page-services__ai-title {
		text-align: left;
	}

	.page-services__ai-body {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	}

	.page-services__ai-body-text {
		text-align: left;
	}
	.page-services__release-card {
		font-family: var(--font-serif);
		padding: clamp(4rem, 0.85rem + 0.8vw, 1.6rem);
	}
}

@media (width >= 830px) {
	.page-services__ai-hero {
		grid-template-columns: minmax(0, 3fr) minmax(0, 7fr);
	}
}

/* ===== page-materials（資料ダウンロード） mobile-first ===== */

.page-materials.site-main {
	padding-top: 0;
	padding-bottom: 0;
}

.page-materials .post-archive-cover--page {
	overflow: hidden;
}

/* 全幅帯：白 ⇔ #F5F5F5 を交互に */
.materials-band {
	width: 100%;
	box-sizing: border-box;
	background: #ffffff;
}

.materials-band--white {
	background: #ffffff;
}

.materials-band--soft {
	background: linear-gradient(180deg, rgb(244, 244, 244) 0%, rgb(255, 255, 255) 100%);
}

.materials-band__inner {
	padding-top: clamp(2.25rem, 1.85rem + 1.4vw, 3.25rem);
	padding-bottom: clamp(2.25rem, 1.85rem + 1.4vw, 3.25rem);
}

.materials-band--last .materials-band__inner {
	padding-bottom: clamp(2.75rem, 2.25rem + 1.6vw, 3.75rem);
}

.materials-section {
	margin: 0;
	padding: 0;
}

.materials-section--lead .materials-intro {
	margin-bottom: clamp(2rem, 1.65rem + 1.2vw, 2.75rem);
}

.materials-intro p {
	margin: 0 0 0.75rem;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--color-text);
}

.materials-intro p:last-child {
	margin-bottom: 0;
}

.materials-intro__note {
	font-size: 0.875rem;
	color: var(--color-text-muted);
}

.materials-intro__adobe {
	margin: 0.5rem 0 0;
}

.materials-intro__adobe img {
	vertical-align: middle;
}

/* 資料ページ：共通 h2 の余白調整 */
.materials-intro + .page-heading {
	margin-top: clamp(0.75rem, 0.5rem + 1vw, 1.35rem);
}

.materials-section--rest > .materials-group:first-child .page-heading {
	margin-top: clamp(0.5rem, 0.35rem + 0.8vw, 1.25rem);
}

.materials-section--lead .page-heading {
	margin-bottom: clamp(2rem, 1.65rem + 1.4vw, 3rem);
}

/* h2 + グリッドをまとめたブロック：ブロック間は margin-bottom で管理 */
.materials-group {
	margin: 0 0 clamp(4.5rem, 3.75rem + 3vw, 6.25rem);
	padding: 0;
}

/* グループ内：見出しとグリッドの間 */
.materials-group .materials-grid {
	margin-top: clamp(3.5rem, 3rem + 2.5vw, 5.25rem);
}

.materials-lead {
	margin: 0 0 0.6rem;
	font-size: 0.9rem;
	line-height: 1.65;
	color: #555555;
	text-align: center;
}

.materials-lead:last-of-type {
	margin-bottom: 0;
}

.materials-subhead {
	margin: clamp(1.25rem, 1rem + 1vw, 1.75rem) 0 var(--space-4);
	text-align: center;
}

.materials-subhead__title {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 700;
	color: #444444;
}

.materials-subhead__meta {
	margin: 0.35rem 0 0;
	font-size: 0.9rem;
	color: #666666;
}

.materials-figure {
	margin: var(--space-2) auto var(--space-5);
	max-width: 480px;
	text-align: center;
}

.materials-figure img {
	width: 100%;
	max-width: 480px;
	height: auto;
	vertical-align: middle;
	border: 1px solid #e5e5e5;
	border-radius: 4px;
}

.materials-dl {
	margin: 0;
	text-align: center;
}

.materials-btn {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 12rem;
	padding: 0.65rem 1.25rem;
	font-size: 0.9375rem;
	font-weight: 700;
	color: #ffffff;
	text-decoration: none;
	background-color: var(--color-primary);
	border: none;
	border-radius: 9999px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
	transition: filter 0.15s ease, transform 0.08s ease;
}

.materials-btn:hover {
	color: #ffffff;
	filter: brightness(1.05);
}

.materials-btn:active {
	transform: translateY(1px);
}

.materials-btn--sm {
	min-width: 10rem;
	padding: 0.45rem 1rem;
	font-size: 0.875rem;
}

.materials-btn--pdf {
	flex-direction: row;
	flex-wrap: wrap;
}

.materials-btn__icon {
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.02em;
}

.materials-btn__size {
	display: block;
	width: 100%;
	font-size: 0.8rem;
	font-weight: 500;
	opacity: 0.95;
}

.materials-btn--on-dark {
	background-color: var(--color-primary);
	color: #ffffff;
}

.materials-btn--on-dark .materials-btn__size {
	font-size: 0.75rem;
}

.materials-grid {
	display: grid;
	gap: clamp(1rem, 0.85rem + 0.6vw, 1.5rem);
	margin-top: 0;
}


.materials-grid--2 {
	grid-template-columns: 1fr;
}

.materials-grid--3 {
	grid-template-columns: 1fr;
}

.materials-card {
	padding: var(--space-4);
	text-align: center;
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.materials-card__caption {
	margin: 0 0 var(--space-3);
	font-size: 0.9rem;
	color: #555555;
}

.materials-card__figure {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 var(--space-4);
	min-height: 10rem;
	overflow: hidden;
}

.materials-card__figure img {
	max-width: 65%;
	max-height: 10rem;
	width: auto;
	height: auto;
	object-fit: contain;
	vertical-align: middle;
}

/* スマホ画面キャプチャ：同一行で高さを揃える */
.materials-card__figure--phone {
	min-height: clamp(17rem, 15rem + 7vw, 22rem);
	height: clamp(17rem, 15rem + 7vw, 22rem);
}

.materials-card__figure--phone img {
	width: 180px;
	max-width: min(180px, 100%);
	height: 100%;
	max-height: 100%;
	object-fit: contain;
}

/* アイコン：ロゴ行の他カードと同じボックス高さで中央 */
.materials-card__figure--icon {
	min-height: 10rem;
	height: 10rem;
}

.materials-card__figure--icon img {
	width: 100px;
	height: 100px;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.materials-pr-card {
	position: relative;
	min-height: 300px;
	overflow: hidden;
}

.materials-duotone-defs {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.materials-pr-card__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ブロックエディタのデュオトーンと同型: SVG filter（page-materials 内の defs を参照） */
.materials-pr-card--gold .materials-pr-card__bg {
	filter: url(#materials-duotone-pr-gold);
}

.materials-pr-card--purple .materials-pr-card__bg {
	filter: url(#materials-duotone-pr-purple);
}

.materials-pr-card--green .materials-pr-card__bg {
	filter: url(#materials-duotone-pr-green);
}

.materials-pr-card__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* デュオトーンの上に軽い暗幕（読みやすさ・完成系の深さ）— 色のりは filter 側に任せる */
.materials-pr-card--gold .materials-pr-card__overlay,
.materials-pr-card--purple .materials-pr-card__overlay,
.materials-pr-card--green .materials-pr-card__overlay {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.4) 100%);
}

.materials-pr-card__body {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 300px;
	padding: var(--space-5) var(--space-4);
	text-align: center;
}

.materials-pr-card__title {
	margin: 0;
	font-size: 1.15em;
	font-weight: 700;
	color: #ffffff;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}

.materials-pr-card__sub {
	margin: 0.35rem 0 var(--space-4);
	font-size: 0.95rem;
	color: #ffffff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}

/* 使用原則ブロック：白地・左揃え（帯の上に文書として載せる） */
.materials-doc {
	margin: 0;
	padding: clamp(1.35rem, 1rem + 1.2vw, 1.85rem);
	background: #ffffff;
	border-radius: 4px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	text-align: left;
}

.materials-principles {
	margin: 0;
	padding: 0;
	border: none;
}

.materials-principles p {
	margin: 0 0 1rem;
	font-size: 0.9375rem;
	line-height: 1.85;
	color: #555555;
}

.materials-principles p:last-of-type {
	margin-bottom: 0;
}

.materials-principles__highlight {
	display: inline;
	margin: 0 0 1rem 1.25rem;
	padding: 0.12em 0.2em 0.08em;
	max-width: max-content;
	font-size: 0.9375rem;
	line-height: 1.85;
	color: #444444;
	background: linear-gradient(transparent 55%, #ffee58 55%, #ffeb3b 95%);
}

.materials-contact {
	margin: clamp(1.25rem, 1rem + 1vw, 1.65rem) 0 0.75rem;
	font-size: 0.9375rem;
	line-height: 1.85;
	color: #555555;
	text-align: left;
}

.materials-contact a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.materials-updated {
	margin: 0;
	padding-top: 0.25rem;
	font-size: 0.875rem;
	line-height: 1.6;
	color: #666666;
	text-align: left;
}

@media (width >= 820px) {
	.post-archive-cover--page {
		min-height: 200px;
	}

	.post-archive-cover--page .post-archive-cover__inner {
		min-height: 200px;
		padding: 1.25rem var(--container-pad-x);
	}

	.post-archive-cover--page .post-archive-cover__title {
		font-size: 2rem;
	}

	.post-archive-cover--page .post-archive-cover__title::after {
		width: 72px;
	}

	.post-archive-cover--page .post-archive-cover__subtitle {
		font-size: 1rem;
	}

	.materials-grid--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.materials-grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.materials-group .materials-grid {
		margin-top: clamp(4rem, 3.25rem + 2.5vw, 5.75rem);
	}
}

/* ===== page-p202301（自動テクスチャ識別プログラム） mobile-first ===== */

.page-p202301.site-main {
	padding-top: 0;
	padding-bottom: 0;
	overflow-x: clip;
	background-color: #f0f0f0;
	background-image: url("https://textorage.com/wp-content/uploads/2024/02/textures_topbg.jpg");
	background-position: 50% 50%;
	background-repeat: repeat;
}

.page-p202301__hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 45vh;
	padding: clamp(2rem, 4vw, 3.5rem) 0;
	box-sizing: border-box;
}

/* page-terms / page-app-privacy / page-materials: hero without EN subtitle or title underline */
.page-p202301__hero-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(255, 255, 255, 0.2);
	pointer-events: none;
}

.page-p202301__hero-panel {
	position: relative;
	z-index: 1;
	width: 100%;
	box-sizing: border-box;
	padding: clamp(1rem, 0.75rem + 1vw, 1.75rem) 0;
	background: linear-gradient(
		90deg,
		rgba(255, 255, 255, 0.59) 0%,
		rgb(255, 255, 255) 48%,
		rgba(255, 255, 255, 0.59) 100%
	);
	text-align: center;
}

.page-p202301__title {
	margin: 0 0 clamp(0.75rem, 0.5rem + 0.8vw, 1.25rem);
	font-size: clamp(1.15rem, 1rem + 0.6vw, 1.75rem);
	line-height: 1.35;
	color: var(--color-text);
}

.page-p202301__title-line--pc {
	display: none;
}

.page-p202301__title-line--sp {
	display: inline;
}

.page-p202301__lead {
	margin: 0 0 0.75rem;
	font-size: clamp(0.9rem, 0.85rem + 0.2vw, 1rem);
	line-height: 1.75;
	color: var(--color-text);
}

.page-p202301__patent {
	margin: 0;
	font-size: 0.8125rem;
}

.page-p202301__body {
	display: flex;
	flex-direction: column;
	gap: clamp(1rem, 0.85rem + 0.8vw, 1.5rem);
	width: 100%;
	min-width: 0;
}

.page-p202301__band,
.page-faq{
	width: 100%;
	box-sizing: border-box;
	background: transparent;
}

.page-p202301__band--white {
	background: transparent;
}

.page-p202301__band--mint {
	background: transparent;
}

.page-p202301__band--contact,
.page-faq__band--contact{
	background: transparent;
}

.page-p202301__inner {
	padding-top: clamp(4rem, 1.35rem + 1.4vw, 2.75rem);
	padding-bottom: clamp(4rem, 1.35rem + 1.4vw, 2.75rem);
	border-radius: 4px;
	background: #ffffff;
}

.page-p202301__band--mint .page-p202301__inner {
	background: #ebfaf5;
}

/* machine〜performance: 背景は帯をビューポート幅いっぱい（100%）に */
.page-p202301__section--machine,
.page-p202301__section--texture {
	background: #ffffff;
}

.page-p202301__section--texture {
	margin-top: calc(-1 * clamp(1rem, 0.85rem + 0.8vw, 1.5rem));
}

.page-p202301__section--performance {
	background: #ebfaf5;
	margin-top: calc(-1 * clamp(1rem, 0.85rem + 0.8vw, 1.5rem));
}

.page-p202301__section--contact,
.page-faq__section--contact{
	background: #ffffff;
}

.page-p202301__section--machine .page-p202301__inner,
.page-p202301__section--texture .page-p202301__inner,
.page-p202301__section--performance .page-p202301__inner,
.page-faq__section--machine .page-faq__inner,
.page-faq__section--texture .page-faq__inner,
.page-faq__section--performance .page-faq__inner{
	background: transparent;
	border-radius: 0;
}

.page-p202301__section--contact .page-p202301__inner--contact.
.page-faq__section--contact .page-faq__inner--contact{
	background: transparent;
	border-radius: 0;
}

.page-p202301__inner--contact,
.page-faq__inner--contact{
	padding-top: clamp(2rem, 1.5rem + 1.8vw, 3.5rem);
	padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
}

/* infinity: 前後セクションとの間隔 + inner 内の余白を広めに */
.page-p202301__section--infinity {
	margin-block: clamp(2.5rem, 2rem + 2.5vw, 5rem);
}

.page-p202301__split {
	display: grid;
	gap: clamp(1.25rem, 1rem + 1vw, 2rem);
	align-items: center;
}

.page-p202301__col {
	min-width: 0;
}

.page-p202301__col--stack {
	display: grid;
	gap: clamp(1rem, 0.85rem + 0.6vw, 1.5rem);
}

.page-p202301__aside--desktop {
	display: none;
}

.page-p202301__col--paper {
	padding: clamp(1.65rem, 1rem + 1vw, 2rem);
	background: transparent;
	border-radius: 0;
}

.page-p202301__band--mint .page-p202301__col--paper {
	padding: 0;
}

/* living: 白背景は inner ではなくテキスト列（paper）のみ */
.page-p202301__section--living .page-p202301__inner {
	background: transparent;
}

.page-p202301__section--living .page-p202301__col--paper {
	background: #ffffff;
	border-radius: 4px;
}

.page-p202301__h2 {
	position: relative;
	z-index: 0;
	margin: 0 0 clamp(1rem, 0.85rem + 0.6vw, 1.5rem);
	padding: clamp(0.85rem, 0.7rem + 0.5vw, 1.25rem) clamp(1rem, 0.85rem + 0.8vw, 1.75rem);
	border: 1px solid #111827;
	font-size: clamp(1.25rem, 1.1rem + 0.4vw, 1.65rem);
	line-height: 1.4;
	text-align: left;
	color: var(--color-text);
	background: transparent;
	text-align: center;
}

.page-p202301__h2::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: -10px;
	left: -10px;
	width: 20px;
	height: 20px;
	border: 1px solid #111827;
	pointer-events: none;
	box-sizing: border-box;
}

.page-p202301__h2::after {
	content: "";
	position: absolute;
	z-index: 1;
	bottom: -10px;
	right: -10px;
	width: 20px;
	height: 20px;
	border: 1px solid #111827;
	pointer-events: none;
	box-sizing: border-box;
}

.page-p202301__figure {
	margin: 0;
	text-align: center;
}

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

.page-p202301__figure--frame {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
}

.page-p202301__figure--frame img{
	padding: 4px;
	border: 1px solid #e8e8e8;
	background: #ffffff;
}

.page-p202301__caption {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.6;
	text-align: center;
}

.page-p202301__col p {
	margin: 0 0 var(--space-3);
	line-height: 1.85;
	color: var(--color-text);
}

.page-p202301__col p:last-child {
	margin-bottom: 0;
}

.page-p202301__paper {
	margin: clamp(1rem, 0.85rem + 0.6vw, 1.5rem) 0 0;
	padding: clamp(0.85rem, 0.7rem + 0.5vw, 1.1rem);
	background: #f8f8f8;
	font-size: 0.8125rem;
	line-height: 1.75;
	color: #333333;
}

.page-p202301__paper a {
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.page-p202301__closing {
	margin: 0 0 var(--space-3);
	font-size: 1.25rem;
	font-weight: 700;
	text-align: center;
	color: var(--color-text);
}

.page-p202301__closing--line1 {
	margin-top: clamp(1rem, 0.85rem + 0.6vw, 1.5rem) !important;
    margin-bottom: 0 !important;
    font-size: 1.45rem !important;
}

.page-p202301__media--desktop {
	display: none;
}

.page-p202301__media--mobile {
	display: block;
	margin-block: clamp(2rem, 0.85rem + 0.8vw, 1.5rem);
}

.page-p202301__contact-title,
.page-faq__contact-title{
	margin: 0 0 clamp(1.25rem, 1rem + 1vw, 2rem);
	font-size: clamp(1.5rem, 1.25rem + 0.8vw, 2rem);
	text-align: center;
	color: var(--color-text);
}

.page-p202301__contact-lead,
.page-p202301__contact-note,
.page-faq__contact-lead,
.page-faq__contact-note{
	margin: 0 0 var(--space-3);
	font-size: var(--fz-body);
	line-height: 1.75;
	text-align: center;
	color: var(--color-text);
}

.page-p202301__form,
.page-faq__form{
	margin-top: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
	margin-left: auto;
	margin-right: auto;
}

@media (width >= 820px) {
	.page-p202301.site-main {
		background-attachment: fixed;
	}

	.page-p202301__title-line--pc {
		display: inline;
	}

	.page-p202301__title-line--sp {
		display: none;
	}

	.page-p202301__title {
		font-size: clamp(1.5rem, 1.2rem + 0.9vw, 2rem);
	}

	.page-p202301__media--desktop {
		display: block;
	}

	.page-p202301__media--mobile {
		display: none;
	}

	.page-p202301__split--1 {
		grid-template-columns: minmax(0, 30%) minmax(0, 70%);
		align-items: center;
		gap: clamp(1.5rem, 1.2rem + 1vw, 2.5rem);
	}

	.page-p202301__split--2 {
		grid-template-columns: minmax(0, 60%) minmax(0, 40%);
		align-items: center;
		gap: clamp(1.5rem, 1.2rem + 1vw, 2.5rem);
	}

	.page-p202301__split--3 {
		grid-template-columns: minmax(0, 30%) minmax(0, 70%);
		align-items: start;
		gap: clamp(1.5rem, 1.2rem + 1vw, 2.5rem);
	}

	.page-p202301__aside--desktop {
		display: grid;
	}

	.page-p202301__split--4 {
		grid-template-columns: minmax(0, 57.5%) minmax(0, 42.5%);
		align-items: center;
		gap: clamp(1.5rem, 1.2rem + 1vw, 2.5rem);
	}

	.page-p202301__split--5 {
		grid-template-columns: minmax(0, 30%) minmax(0, 70%);
		align-items: center;
		gap: clamp(2rem, 1.5rem + 1.5vw, 3rem);
	}

	.page-p202301__band--mint .page-p202301__col {
		padding: clamp(1rem, 0.85rem + 0.8vw, 1.75rem) 0;
	}

	
	.page-p202301__section--infinity .page-p202301__inner {
		padding: clamp(4rem, 2.25rem + 2.2vw, 4.5rem);
	}

}

/* ===== front-page（トップ） ===== */
.front-page.site-main {
	padding-top: 0;
	padding-bottom: 0;
}

.fp-parallax {
	position: relative;
	overflow: hidden;
}

.fp-parallax__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-position: 50% 50%;
	background-size: cover;
	background-repeat: no-repeat;
	pointer-events: none;
}

.fp-parallax__content {
	position: relative;
	z-index: 1;
}

@media (width >= 820px) {
	.fp-parallax__bg {
		background-attachment: fixed;
	}
}

.fp-hero {
	background: linear-gradient(270deg, rgb(2, 3, 129) 0%, rgb(0, 13, 38) 100%);
	color: #f8fafc;
	padding: clamp(1.75rem, 1.25rem + 2vw, 3rem) 0 clamp(2.5rem, 2rem + 2vw, 4rem);
}

.fp-section-title {
	margin: 0 0 clamp(1rem, 0.75rem + 0.8vw, 1.35rem);
	font-size: clamp(1.25rem, 1.05rem + 0.65vw, 1.65rem);
	line-height: 1.32;
	text-align: center;
}

.fp-section-title--lined {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.25rem;
	white-space: nowrap;
}

.fp-section-title--lined::before,
.fp-section-title--lined::after {
	content: "";
	height: 1px;
	flex: 1;
	max-width: 6rem;
}

.fp-section-title--on-dark::before,
.fp-section-title--on-dark::after {
	background: rgba(255, 255, 255, 0.55);
}

.fp-hero__split {
	display: grid;
	gap: clamp(1.5rem, 1.2rem + 1vw, 2.5rem);
	align-items: center;
}

@media (width >= 820px) {
	.fp-hero__split {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	}
}

.fp-hero__visual {
	text-align: center;
}

.fp-hero__visual img {
	width: min(400px, 100%);
	height: auto;
}

.fp-hero__body p {
	margin: 0 0 1rem;
	line-height: 1.78;
	font-size: clamp(0.98rem, 0.92rem + 0.2vw, 1.0625rem);
}

.fp-hero__note {
	margin: 0;
	text-align: right;
	font-size: clamp(0.8125rem, 0.78rem + 0.12vw, 0.875rem);
	opacity: 0.92;
}

.fp-services-heading {
	margin: clamp(2rem, 1.5rem + 2vw, 3rem) 0 clamp(1rem, 0.75rem + 1vw, 1.5rem);
	font-size: clamp(1.25rem, 1.05rem + 0.65vw, 1.65rem);
	font-weight: 700;
	text-align: center;
	color: #f8fafc;
}

.fp-services-card {
	margin: 0 auto;
	padding: clamp(1.25rem, 1rem + 1vw, 2rem);
	background: #ffffff;
}

.fp-services-card__link {
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
}

.fp-services-card__link img {
	width: auto;
	max-width: 100%;
}

.fp-news-band {
	background: rgba(0, 0, 0, 0.64);
	color: #f8fafc;
	padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(2.5rem, 5vw, 4rem);
}

.fp-news-band__title {
	margin: 0 0 clamp(1.25rem, 1rem + 1vw, 2rem);
	font-size: clamp(1.25rem, 1.05rem + 0.65vw, 1.65rem);
	font-weight: 700;
	text-align: center;
}

.fp-news-card {
	display: grid;
	gap: clamp(1rem, 0.75rem + 1vw, 1.5rem);
	align-items: center;
}

@media (width >= 640px) {
	.fp-news-card {
		grid-template-columns: minmax(0, 33%) minmax(0, 67%);
	}
}

.fp-news-card__thumb {
	display: block;
	text-align: center;
}

.fp-news-card__thumb img {
	width: auto;
	max-width: 100%;
	height: 150px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.fp-news-card__title {
	margin: 0 0 0.5rem;
	font-size: clamp(1rem, 0.92rem + 0.25vw, 1.125rem);
	font-weight: 600;
	line-height: 1.45;
}

.fp-news-card__title a {
	color: #86efac;
	text-decoration: none;
}

.fp-news-card__title a:hover {
	text-decoration: underline;
}

.fp-news-card__date {
	margin: 0;
	font-size: clamp(0.8125rem, 0.78rem + 0.12vw, 0.875rem);
	opacity: 0.9;
}

.fp-news-card__empty {
	margin: 0;
	text-align: center;
}

.fp-news-card__empty a {
	color: #86efac;
}

.fp-contact {
	background: #eeeeee;
	padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem);
}

.fp-contact__title {
	margin: 0 0 clamp(1.25rem, 1rem + 1vw, 1.75rem);
	font-size: clamp(1.25rem, 1.05rem + 0.65vw, 1.5rem);
	text-align: center;
	color: var(--color-text, #0f172a);
}

.fp-contact__lead {
	margin: 0 0 clamp(0.75rem, 0.5rem + 0.8vw, 1rem);
	text-align: center;
	font-size: var(--fz-body, 1rem);
	line-height: 1.7;
	color: var(--color-text, #0f172a);
}

.fp-contact__lead:last-of-type {
	margin-bottom: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
}

.fp-contact__form {
	max-width: 40rem;
	margin: 0 auto;
}

.fp-contact__form-fallback {
	margin: 0;
	text-align: center;
}

.page-faq .wpcf7,
.page-p202301 .wpcf7,
.front-page .wpcf7 {
	font-size: var(--fz-body);
	color: var(--color-text);
}

.page-faq .wpcf7 form > p,
.page-p202301 .wpcf7 form > p,
.front-page .wpcf7 form > p {
	margin: 0 0 var(--space-4);
}

.page-faq .wpcf7 form .form-acceptance,
.page-p202301 .wpcf7 form .form-acceptance,
.front-page .wpcf7 form .form-acceptance,
.page-faq .wpcf7 form .form-submit-group,
.page-p202301 .wpcf7 form .form-submit-group,
.front-page .wpcf7 form .form-submit-group{
	text-align: center;
}

.page-faq .wpcf7 label,
.page-p202301 .wpcf7 label,
.front-page .wpcf7 label {
	display: block;
}

.page-faq .wpcf7 .cf-required,
.page-p202301 .wpcf7 .cf-required,
.front-page .wpcf7 .cf-required {
	color: var(--color-text);
}

.page-faq .wpcf7 .cf-required:after,
.page-p202301 .wpcf7 .cf-required:after,
.front-page .wpcf7 .cf-required:after {
    background-color: rgb(255, 102, 102);
    color: rgb(255, 255, 255);
    font-size: 11px;
    font-weight: 700;
    min-width: 10px;
    line-height: 1;
    vertical-align: middle;
    text-align: center;
    display: inline-block;
    content: "*必須" !important;
    padding: 3px 7px;
    margin: 0px 5px 2px;
    border-radius: 10px;
}


.page-faq .wpcf7 input[type="text"],
.page-faq .wpcf7 input[type="email"],
.page-faq .wpcf7 input[type="tel"],
.page-faq .wpcf7 textarea,
.page-p202301 .wpcf7 input[type="text"],
.page-p202301 .wpcf7 input[type="email"],
.page-p202301 .wpcf7 input[type="tel"],
.page-p202301 .wpcf7 textarea,
.front-page .wpcf7 input[type="text"],
.front-page .wpcf7 input[type="email"],
.front-page .wpcf7 input[type="tel"],
.front-page .wpcf7 textarea {
	width: 100%;
	max-width: 100%;
	margin-top: 0.35rem;
	padding: 0.65rem 0.75rem;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	font: inherit;
	box-sizing: border-box;
	background: #fff;
	font-size: 16px;
}

.page-faq .wpcf7 textarea,
.page-p202301 .wpcf7 textarea,
.front-page .wpcf7 textarea {
	min-height: 10rem;
	resize: vertical;
}

.page-faq .wpcf7 input[type="submit"],
.page-p202301 .wpcf7 input[type="submit"],
.front-page .wpcf7 input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.65rem 2rem;
	border: none;
	border-radius: 9999px;
	background: var(--color-primary);
	color: #ffffff;
	font-weight: 800;
	cursor: pointer;
}

.page-faq .wpcf7 input[type="submit"]:hover,
.page-p202301 .wpcf7 input[type="submit"]:hover,
.front-page .wpcf7 input[type="submit"]:hover {
	background: var(--color-primary-hover);
}

.page-faq .wpcf7 .wpcf7-list-item-label,
.page-p202301 .wpcf7 .wpcf7-list-item-label,
.front-page .wpcf7 .wpcf7-list-item-label {
	font-weight: 400;
}

.page-faq .wpcf7 .wpcf7-list-item-label a,
.page-p202301 .wpcf7 .wpcf7-list-item-label a,
.front-page .wpcf7 .wpcf7-list-item-label a {
	color: var(--color-primary);
	text-decoration: underline;
}

.page-faq .wpcf7-spinner,
.page-p202301 .wpcf7-spinner,
.front-page .wpcf7-spinner {
	display: none;
}
