@charset "UTF-8";

:root {
	--color-base: rgb(247 250 246);
	--color-white: rgb(255 255 255);
	--color-text: rgb(24 36 24);
	--color-text-sub: rgb(82 97 82);
	--color-line: rgb(205 218 204);
	--color-primary: rgb(39 138 43);
	--color-primary-dark: rgb(29 104 33);
	--color-primary-soft: rgb(39 138 43 / .08);
	--color-accent: rgb(104 181 39);
	--color-accent-soft: rgb(104 181 39 / .10);
	--color-surface: rgb(242 247 241);
	--shadow-sm: 0 8px 24px rgb(24 36 24 / .06);
	--shadow-md: 0 18px 40px rgb(24 36 24 / .10);
	--radius-sm: 12px;
	--radius-md: 20px;
	--radius-lg: 28px;
	--content-width: 1200px;
	--content-narrow: 920px;
	--header-height: 88px;
}

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

:target {
	scroll-margin-top: 60px;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	color: var(--color-text);
	background-color: var(--color-base);
	line-height: 1.8;
	-webkit-text-size-adjust: 100%;
}

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

a {
	color: inherit;
	text-decoration: none;
}

button {
	font: inherit;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

p,
h1,
h2,
h3,
dl,
dd,
dt {
	margin: 0;
}

.site-wrapper {
	min-width: 320px;
	overflow: clip;
}

.container {
	width: min(100% - 40px, var(--content-width));
	margin-inline: auto;
}

.section {
	padding: 96px 0;
}

.section--narrow .container {
	width: min(100% - 40px, var(--content-narrow));
}

.section--soft {
	background-color: rgb(255 255 255 / .74);
}

.section-kicker {
	margin-bottom: 12px;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--color-primary);
}

.section-kicker--light {
	color: rgb(223 246 211);
}

.section-title {
	font-size: clamp(2rem, 3.5vw, 3rem);
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: .01em;
}

.section-heading {
	margin-bottom: 40px;
	text-align: center;
}

.section-heading--left {
	text-align: left;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 56px;
	padding: 14px 24px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	transition:
		transform .25s ease,
		box-shadow .25s ease,
		background-color .25s ease,
		color .25s ease,
		border-color .25s ease;
	cursor: pointer;
}

.button:hover {
	transform: translateY(-2px);
}

.button--primary {
	color: var(--color-white);
	background-color: var(--color-primary-dark);
	box-shadow: var(--shadow-sm);
}

.button--primary:hover {
	background-color: rgb(23 84 27);
	box-shadow: var(--shadow-md);
}

.button--secondary {
	color: var(--color-primary-dark);
	background-color: var(--color-white);
	border-color: var(--color-line);
}

.button--secondary:hover {
	background-color: rgb(247 250 246);
	border-color: rgb(166 189 164);
}

.button--ghost {
	color: var(--color-primary-dark);
	background-color: transparent;
	border-color: rgb(39 138 43 / .20);
}

.button--ghost:hover {
	background-color: var(--color-primary-soft);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	color: var(--color-primary-dark);
}

.text-link::after {
	content: "→";
	font-size: 0.95rem;
}

.text-link--light {
	color: rgb(238 249 232);
}


.text-adjust {
	white-space: nowrap;
}





.header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid rgb(255 255 255 / .08);
	backdrop-filter: blur(16px);
	background-color: rgb(247 250 246 / .92);
	transition:
		box-shadow .25s ease,
		background-color .25s ease;
}

.header.is-scrolled {
	box-shadow: 0 8px 24px rgb(24 36 24 / .08);
	background-color: rgb(247 250 246 / .98);
}

.header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: min(100% - 40px, var(--content-width));
	min-height: var(--header-height);
	margin-inline: auto;
}

.header__brand {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}

.header__logo {
	width: 100%;
	max-width: 320px;
	height: auto;
}

.header__nav-list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 28px;
}

.header__nav a {
	position: relative;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--color-text);
}

.header__nav a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -8px;
	width: 100%;
	height: 2px;
	transform: scaleX(0);
	transform-origin: left center;
	background-color: var(--color-primary);
	transition: transform .25s ease;
}

.header__nav a:hover::after,
.header__nav a:focus-visible::after {
	transform: scaleX(1);
}

.header__toggle {
	display: none;
	position: relative;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 12px;
	background-color: rgb(39 138 43 / .08);
	cursor: pointer;
}

.header__toggle span {
	position: absolute;
	left: 12px;
	width: 24px;
	height: 2px;
	background-color: var(--color-primary-dark);
	transition:
		transform .25s ease,
		opacity .25s ease,
		top .25s ease;
}

.header__toggle span:nth-child(1) {
	top: 16px;
}

.header__toggle span:nth-child(2) {
	top: 23px;
}

.header__toggle span:nth-child(3) {
	top: 30px;
}

.header__toggle.is-active span:nth-child(1) {
	top: 23px;
	transform: rotate(45deg);
}

.header__toggle.is-active span:nth-child(2) {
	opacity: 0;
}

.header__toggle.is-active span:nth-child(3) {
	top: 23px;
	transform: rotate(-45deg);
}

/* パンくずリスト */
.breadcrumb-wrap {
	padding: 14px 0;
	background-color: rgb(39 138 43 / .04);
	border-top: 1px solid rgb(166 189 164 / .18);
	border-bottom: 1px solid rgb(166 189 164 / .18);
}

.breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	font-size: .9rem;
	color: var(--color-text-sub);
}

.breadcrumb__item {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.breadcrumb__item:not(:last-child)::after {
	content: ">";
	color: rgb(111 130 111);
}

.breadcrumb__item a {
	color: var(--color-primary-dark);
	text-decoration: none;
	transition: opacity .25s ease;
}

.breadcrumb__item a:hover {
	opacity: .7;
}

.breadcrumb__item[aria-current="page"] {
	color: var(--color-text-sub);
}


/* フェードイン */
.fade-in {
	opacity: 0;
	transform: translateY(24px);
	transition:
		opacity .8s ease,
		transform .8s ease;
}

.fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}




/* TOP
----------------------------------------------------------------------------- */
.fv {
	position: relative;
	padding: 88px 0 72px;
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
	color: var(--color-white);
}

.fv::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at top right, rgb(255 255 255 / .14), transparent 32%),
		radial-gradient(circle at bottom left, rgb(225 247 214 / .16), transparent 28%);
	pointer-events: none;
}

.fv__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	width: min(100% - 40px, var(--content-width));
	margin-inline: auto;
}

.fv__content {
	max-width: 920px;
	margin: 0 auto;
	padding-top: 8px;
	text-align: center;
}

.fv__title {
	font-size: clamp(2.4rem, 5vw, 4.5rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .01em;
}

.fv__title span {
	display: block;
	color: rgb(232 248 219);
}

.fv__lead {
	margin-top: 24px;
	font-size: 1.05rem;
	color: rgb(241 248 236);
}

.fv__buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin-top: 32px;
}

.fv__side {
	display: contents;
}

.fv__visual {
	display: flex;
	justify-content: center;
}

.fv__image-card {
	overflow: hidden;
	border: 1px solid rgb(255 255 255 / .14);
	border-radius: var(--radius-lg);
	background-color: rgb(255 255 255 / .08);
	box-shadow: var(--shadow-md);
}

.fv__image-card--public-vertical {
	width: min(100%, 560px);
	padding: 20px;
}

.fv__image {
	display: block;
	width: 100%;
	height: auto;
}

.fv__image--contain {
	object-fit: contain;
	transform: none;
	aspect-ratio: auto;
}

.fv__support-panels,
.fv__panel {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	align-items: stretch;
}

.fv__panel-card {
	padding: 28px;
	border: 1px solid rgb(255 255 255 / .14);
	border-radius: var(--radius-lg);
	background-color: rgb(255 255 255 / .10);
	box-shadow: var(--shadow-sm);
}

.fv__panel-card--sub {
	background-color: rgb(29 104 33 / .24);
}

.fv__panel-title {
	margin-bottom: 16px;
	font-size: 1.125rem;
	font-weight: 700;
}

.fv__panel-list {
	display: grid;
	gap: 12px;
}

.fv__panel-list li {
	position: relative;
	padding-left: 20px;
	color: rgb(245 250 242);
}

.fv__panel-list li::before {
	content: "";
	position: absolute;
	top: 12px;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: rgb(223 246 211);
}

.fv__panel-note {
	color: rgb(240 248 235);
}

@media (max-width: 820px) {
	.fv {
		padding: 72px 0 60px;
	}

	.fv__inner {
		gap: 24px;
	}

	.fv__content {
		text-align: left;
	}

	.fv__buttons {
		justify-content: flex-start;
	}

	.fv__image-card--public-vertical {
		width: min(100%, 440px);
		padding: 16px;
	}

	.fv__support-panels,
	.fv__panel {
		grid-template-columns: 1fr;
	}

	.fv__panel-card {
		padding: 24px;
	}
}





.intro__body {
	display: grid;
	gap: 20px;
	font-size: 1.0625rem;
	color: var(--color-text-sub);
}

.issues__grid,
.support__grid,
.trust__grid,
.news__list {
	display: grid;
	gap: 24px;
}

.issues__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.issue-card,
.support-card,
.trust-card,
.news-card {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.issue-card__title,
.support-card__title,
.trust-card__title,
.remote-point__title {
	margin-bottom: 12px;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.5;
}

.issue-card__text,
.support-card__text,
.trust-card__text,
.remote-point__text,
.news-card__text {
	color: var(--color-text-sub);
}

.issues__lead {
	margin-top: 28px;
	font-size: 1.0625rem;
	font-weight: 700;
	text-align: center;
	color: var(--color-primary-dark);
}

/* 協会ができること */
.support__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.support-card--accent {
	border-color: rgb(39 138 43 / .22);
	background-color: rgb(39 138 43 / .05);
}

.remote__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 24px;
}

@media (max-width: 820px) {
	.remote__actions {
		flex-direction: column;
	}
}

.support-card--link {
	display: block;
	color: inherit;
	text-decoration: none;
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.support-card--link:hover {
	text-decoration: none;
	transform: translateY(-4px);
}


/* 防犯コンサルティング */
.consulting-top__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr);
	gap: 32px;
	align-items: start;
}

.consulting-top__lead {
	margin-bottom: 16px;
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.8;
	color: var(--color-text);
}

.consulting-top__text {
	color: var(--color-text-sub);
}

.consulting-top__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}

.consulting-top__cards {
	display: grid;
	gap: 20px;
}

.consulting-top__card {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.consulting-top__card-title {
	margin-bottom: 12px;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.consulting-top__card-text {
	color: var(--color-text-sub);
}

@media (max-width: 1080px) {
	.consulting-top__inner {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 820px) {
	.consulting-top__buttons {
		flex-direction: column;
	}
}

/* ご相談の流れ */
.flow__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.flow-step {
	position: relative;
	padding: 32px 24px 24px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.flow-step__number {
	display: inline-block;
	margin-bottom: 18px;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--color-primary);
}

.flow-step__title {
	margin-bottom: 10px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
}

.flow-step__text {
	color: var(--color-text-sub);
}

.flow__note {
	margin-top: 28px;
	text-align: center;
	font-weight: 700;
	color: var(--color-primary-dark);
}

/* 遠隔映像管理事業 */
.remote__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
	gap: 32px;
	align-items: start;
	padding: 40px;
	border-radius: var(--radius-lg);
	background:
		linear-gradient(135deg, rgb(255 255 255) 0%, rgb(242 247 241) 100%);
	box-shadow: var(--shadow-md);
}

.remote__lead,
.remote__text {
	color: var(--color-text-sub);
}

.remote__lead {
	margin-top: 16px;
	font-size: 1.0625rem;
}

.remote__text + .remote__text {
	margin-top: 16px;
}

.remote__content .button {
	margin-top: 28px;
}

.remote__points {
	display: grid;
	gap: 18px;
}

.remote-point {
	padding: 24px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: rgb(39 138 43 / .04);
}

/* 協会の強み・コンプライアンス */
.compliance__box,
.contact__box {
	padding: 40px;
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-md);
}

.compliance__lead {
	max-width: 900px;
	font-size: 1.05rem;
	color: var(--color-text-sub);
}

.compliance__list {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}

.compliance__list li {
	padding: 10px 18px;
	border: 1px solid rgb(39 138 43 / .20);
	border-radius: 999px;
	font-weight: 700;
	color: var(--color-primary-dark);
	background-color: var(--color-primary-soft);
}

.compliance__actions {
	margin-top: 28px;
}

/* 活動報告・お知らせ */
.news__list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.news-card {
	transition:
		transform .25s ease,
		box-shadow .25s ease,
		border-color .25s ease;
}

.news-card {
	display: block;
}

.news-card--static {
	cursor: default;
}

.news-card:hover {
	transform: translateY(-4px);
	border-color: rgb(39 138 43 / .28);
	box-shadow: var(--shadow-md);
}

.news-card--static:hover {
	transform: none;
	box-shadow: var(--shadow-sm);
}

.news-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 14px;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--color-primary);
}

.news-card__title {
	margin-bottom: 12px;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
}

/* 当協会について */
.about__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr);
	gap: 32px;
	align-items: start;
}

.about__text {
	display: grid;
	gap: 18px;
	color: var(--color-text-sub);
	font-size: 1.02rem;
}

.about__info {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.about__list {
	display: grid;
	gap: 20px;
}

.about__list div {
	display: grid;
	gap: 8px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgb(226 235 225);
}

.about__list div:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.about__list dt {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--color-primary);
}

.about__list dd {
	color: var(--color-text);
}

.about__actions {
	margin-top: 24px;
}

/* お問い合わせ */
.contact__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
	margin-top: 28px;
}





/* remote-management (遠隔映像管理事業)
----------------------------------------------------------------------------- */
.page-hero {
	padding: 88px 0 72px;
	color: var(--color-white);
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.page-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
	gap: 48px;
	align-items: start;
	width: min(100% - 40px, var(--content-width));
	margin-inline: auto;
}

.page-hero__kicker {
	margin-bottom: 12px;
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: .08em;
	color: rgb(223 246 211);
}

.page-hero__title {
	font-size: clamp(2.25rem, 4.2vw, 4rem);
	font-weight: 800;
	line-height: 1.22;
	letter-spacing: .01em;
}

.page-hero__lead {
	margin-top: 24px;
	font-size: 1.05rem;
	color: rgb(241 248 236);
}

.page-hero__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 32px;
}

.page-hero__note {
	margin-top: 16px;
	font-size: .95rem;
	line-height: 1.7;
	color: rgb(241 248 236);
}

.page-hero__image-wrap {
	overflow: hidden;
	border: 1px solid rgb(255 255 255 / .14);
	border-radius: var(--radius-lg);
	background-color: rgb(255 255 255 / .10);
	box-shadow: var(--shadow-md);
}

.page-hero__image {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transform: scale(1.02);
	transform-origin: center;
}

.page-copy {
	display: grid;
	gap: 20px;
	font-size: 1.0625rem;
	color: var(--color-text-sub);
}

.concern-grid,
.benefit-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.concern-card,
.benefit-card,
.faq-item {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.concern-card {
	display: flex;
	flex-direction: column;
}

.concern-card__title,
.benefit-card__title,
.faq-item__question,
.process-step__title {
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
}

#security-lecture-diagnosis .concern-card__title {
	min-height: calc(1.5em * 3);
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
}

.concern-card--accent {
	border-color: rgb(39 138 43 / .22);
	background-color: rgb(39 138 43 / .05);
}

.concern-card__text,
.benefit-card__text,
.process-step__text,
.faq-item__answer {
	color: var(--color-text-sub);
}

.remote-summary {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
	gap: 32px;
	align-items: start;
	padding: 40px;
	border-radius: var(--radius-lg);
	background:
		linear-gradient(135deg, rgb(255 255 255) 0%, rgb(242 247 241) 100%);
	box-shadow: var(--shadow-md);
}

.summary-points {
	display: grid;
	gap: 14px;
}

.summary-points li {
	position: relative;
	padding: 16px 18px 16px 42px;
	border: 1px solid rgb(39 138 43 / .16);
	border-radius: var(--radius-md);
	font-weight: 700;
	color: var(--color-primary-dark);
	background-color: rgb(39 138 43 / .05);
}

.summary-points li::before {
	content: "";
	position: absolute;
	top: calc(16px + .9em);
	left: 18px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--color-primary);
	transform: translateY(-50%);
}

.process-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.process-step {
	padding: 32px 24px 24px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.process-step__num {
	display: inline-block;
	margin-bottom: 18px;
	font-size: .9rem;
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--color-primary);
}

.section-note {
	margin-top: 28px;
	font-weight: 700;
	text-align: center;
	color: var(--color-primary-dark);
}

.compliance-panel,
.contact-cta {
	padding: 40px;
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-md);
}

.compliance-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 28px;
}

.compliance-tags li {
	padding: 10px 18px;
	border: 1px solid rgb(39 138 43 / .20);
	border-radius: 999px;
	font-weight: 700;
	color: var(--color-primary-dark);
	background-color: var(--color-primary-soft);
}

.compliance-panel__actions {
	margin-top: 28px;
}

.faq-list {
	display: grid;
	gap: 20px;
}

.faq-item__question {
	color: var(--color-text);
}

.contact-cta__lead {
	max-width: 820px;
	margin: 0 auto;
	font-size: 1.05rem;
	text-align: center;
	color: var(--color-text-sub);
}

.contact-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
	margin-top: 28px;
}


.contact-cta__tel {
	margin-top: 18px;
	font-size: .96rem;
	line-height: 1.7;
	text-align: center;
	color: var(--color-text-sub);
}

.contact-cta__tel a {
	font-weight: 700;
	color: var(--color-text);
	text-decoration: none;
	letter-spacing: .01em;
}

.contact-cta__tel a:hover {
	text-decoration: underline;
}

@media (max-width: 820px) {
	.contact-cta__tel {
		margin-top: 16px;
		font-size: .92rem;
	}
}


@media (max-width: 1080px) {
	.page-hero__inner,
	.remote-summary {
		grid-template-columns: 1fr;
	}

	.concern-grid,
	.benefit-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.process-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.page-hero {
		padding: 72px 0 64px;
	}

	.concern-grid,
	.benefit-grid,
	.process-list {
		grid-template-columns: 1fr;
	}

	.remote-summary,
	.compliance-panel,
	.contact-cta {
		padding: 28px;
	}
}

@media (max-width: 560px) {
	.page-hero__inner {
		width: min(100% - 32px, var(--content-width));
	}

	.page-hero__lead,
	.contact-cta__lead,
	.page-copy {
		font-size: 1rem;
	}

	.page-hero__buttons,
	.contact-cta__buttons {
		flex-direction: column;
		align-items: stretch;
	}
}




/* security-lecture-diagnosis (防犯講話・防犯診断)
----------------------------------------------------------------------------- */
.page-hero--support {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.concern-grid--five {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.support-detail {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}

.support-detail__block {
	padding: 40px;
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-md);
}

.topic-box {
	margin-top: 28px;
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: rgb(39 138 43 / .04);
}

.topic-box__title {
	margin-bottom: 18px;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.topic-list {
	display: grid;
	gap: 12px;
}

.topic-list li {
	position: relative;
	padding-left: 22px;
	color: var(--color-text-sub);
}

.topic-list li::before {
	content: "";
	position: absolute;
	top: 12px;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--color-primary);
}

.topic-box__note {
	margin-top: 18px;
	font-size: .95rem;
	color: var(--color-text-sub);
}

@media (max-width: 1180px) {
	.concern-grid--five {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 1080px) {
	.support-detail {
		grid-template-columns: 1fr;
	}

	.concern-grid--five {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.concern-grid--five {
		grid-template-columns: 1fr;
	}

	.support-detail__block {
		padding: 28px;
	}

	.topic-box {
		padding: 22px;
	}
}




/* security-consulting (防犯コンサルティング)
----------------------------------------------------------------------------- */
.page-hero--consulting {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.concern-grid--consulting {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.consulting-target-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.consulting-target-card {
	padding: 32px 28px 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.consulting-target-card__title {
	margin-bottom: 14px;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.consulting-target-card__text {
	color: var(--color-text-sub);
}

@media (max-width: 1180px) {
	.concern-grid--consulting {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1080px) {
	.consulting-target-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 820px) {
	.concern-grid--consulting {
		grid-template-columns: 1fr;
	}
}




/* compliance (コンプライアンス)
----------------------------------------------------------------------------- */
.page-hero--compliance {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.section-lead {
	max-width: 920px;
	margin: 0 auto 32px;
	font-size: 1.05rem;
	text-align: center;
	color: var(--color-text-sub);
}

.compliance-principle {
	padding: 40px;
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-md);
}

.principle-quote {
	padding: 28px;
	border-left: 6px solid var(--color-primary);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	background-color: rgb(39 138 43 / .05);
}

.principle-quote p {
	font-size: 1.08rem;
	font-weight: 500;
	line-height: 1.9;
	color: var(--color-text);
}

.policy-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.policy-card {
	padding: 32px 28px 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.policy-card__title {
	margin-bottom: 14px;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.policy-card__text {
	color: var(--color-text-sub);
}

.guideline-list {
	display: grid;
	gap: 20px;
}

.guideline-item {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.guideline-item__head {
	display: grid;
	grid-template-columns: 40px 1fr;
	column-gap: 14px;
	align-items: start;
	margin-bottom: 12px;
}

.guideline-item__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	font-size: .9rem;
	font-weight: 800;
	line-height: 1;
	color: var(--color-white);
	background-color: var(--color-primary);
	align-self: start;
	position: relative;
	top: -7px; /* 緑の丸数字：縦位置調整 */
}

.guideline-item__title {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.guideline-item__text {
	color: var(--color-text-sub);
}

@media (max-width: 1080px) {
	.policy-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 820px) {
	.compliance-principle {
		padding: 28px;
	}

	.principle-quote {
		padding: 22px;
	}

	.section-lead {
		margin-bottom: 24px;
		font-size: 1rem;
	}
}

@media (max-width: 560px) {
	.guideline-item {
		padding: 22px;
	}

	.guideline-item__head {
		grid-template-columns: 36px 1fr;
		column-gap: 12px;
	}

	.guideline-item__num {
		width: 36px;
		height: 36px;
		font-size: .85rem;
		top: -5px; /* 緑の丸数字：縦位置調整 */
	}
}



/* contact (お問い合わせ)
----------------------------------------------------------------------------- */
.page-hero--contact {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.contact-topic-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.contact-topic-card,
.contact-links__item {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.contact-topic-card--accent {
	border-color: rgb(39 138 43 / .22);
	background-color: rgb(39 138 43 / .05);
}

.contact-topic-card__title,
.contact-links__title {
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.contact-topic-card__text,
.contact-links__text {
	color: var(--color-text-sub);
}

.contact-form-wrap {
	padding: 40px;
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-md);
}

/* 電話 */
.contact-direct {
	margin: 0 auto 24px;
	padding: 20px 24px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: rgb(39 138 43 / .05);
	text-align: center;
}

.contact-direct__lead {
	margin: 0 0 8px;
	font-size: .96rem;
	line-height: 1.7;
	color: var(--color-text-sub);
}

.contact-direct__tel {
	margin: 0;
}

.contact-direct__tel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.4;
	color: var(--color-primary);
	text-decoration: none;
	letter-spacing: .02em;
}

.contact-direct__tel a:hover {
	text-decoration: underline;
}

.contact-direct__icon {
	font-size: 1.05em;
	line-height: 1;
	transform: translateY(-.02em);
}

.contact-direct__number {
	display: inline-block;
	line-height: 1;
}

@media (max-width: 820px) {
	.contact-direct {
		margin-bottom: 20px;
		padding: 18px 20px;
	}

	.contact-direct__lead {
		font-size: .92rem;
	}

	.contact-direct__tel a {
		font-size: 1.08rem;
	}
}


/* フォーム対応 */
.contact-former {
	padding: 32px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.contact-former__lead {
	font-weight: 500;
	color: var(--color-text);
}

.contact-former__required-note {
	margin-top: 10px;
	font-size: .95rem;
	font-weight: 700;
	color: var(--color-primary-dark);
}

.contact-former__form {
	margin-top: 28px;
}

.contact-former__group + .contact-former__group {
	margin-top: 24px;
}

.contact-former__label {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
	font-weight: 700;
	color: var(--color-text);
}

.contact-former__required {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 24px;
	padding: 2px 8px;
	border-radius: 999px;
	background-color: rgb(39 138 43 / .10);
	font-size: .8rem;
	font-weight: 700;
	color: var(--color-primary-dark);
}

.contact-former__sub-label {
	display: block;
	margin-bottom: 8px;
	font-size: .92rem;
	font-weight: 700;
	color: var(--color-text-sub);
}

.contact-former__grid {
	display: grid;
	gap: 16px;
}

.contact-former__grid--2 {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: start;
}

.contact-former__subgroup {
	display: grid;
	grid-template-rows: auto 1fr;
	align-content: start;
	margin: 0;
}

.contact-former__stack {
	display: grid;
	gap: 12px;
}

.contact-former__subgroup + .contact-former__subgroup {
	margin-top: 0;
}

.contact-former__sub-label {
	display: block;
	margin: 0 0 8px;
	font-size: .92rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text-sub);
}

.contact-former__field {
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid rgb(166 189 164 / .36);
	border-radius: var(--radius-sm);
	background-color: var(--color-white);
	font: inherit;
	line-height: 1.6;
	color: var(--color-text);
	appearance: none;
	box-sizing: border-box;
}

.contact-former__field:focus {
	outline: none;
	border-color: rgb(39 138 43 / .60);
	box-shadow: 0 0 0 4px rgb(39 138 43 / .12);
}

.contact-former__field--textarea {
	min-height: 180px;
	resize: vertical;
}

.contact-former__zip {
	display: flex;
	align-items: center;
	gap: 10px;
}

.contact-former__zip-mark {
	flex: 0 0 auto;
	font-weight: 700;
	color: var(--color-text);
}

.contact-former__note {
	margin-top: 24px;
	padding: 18px 20px;
	border-radius: var(--radius-md);
	background-color: rgb(39 138 43 / .05);
	color: var(--color-text-sub);
}

.contact-former__actions {
	margin-top: 24px;
}

.contact-former__submit {
	border: 0;
	cursor: pointer;
}

@media (max-width: 820px) {
	.contact-former {
		padding: 24px 18px;
	}

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


.contact-links {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.contact-links__item {
	transition:
		transform .25s ease,
		box-shadow .25s ease,
		border-color .25s ease;
}

.contact-links__item:hover {
	transform: translateY(-4px);
	border-color: rgb(39 138 43 / .28);
	box-shadow: var(--shadow-md);
}

@media (max-width: 1080px) {
	.contact-topic-grid,
	.contact-links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.contact-topic-grid,
	.contact-links,
	.contact-form__grid {
		grid-template-columns: 1fr;
	}

	.contact-form-wrap {
		padding: 28px;
	}
}

@media (max-width: 560px) {
	.contact-form__actions .button {
		width: 100%;
	}
}




/* about (協会について)
----------------------------------------------------------------------------- */
.page-hero--about {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.overview-card {
	padding: 40px;
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-md);
}

.overview-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px 32px;
}

.overview-list div {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 8px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgb(226 235 225);
}

.overview-list div:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.overview-list dt {
	min-height: calc(1.6em * 2);
	display: flex;
	align-items: flex-start;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.6;
	color: var(--color-primary);
}

.overview-list dd {
	margin: 0;
	color: var(--color-text);
}

.overview-note {
	margin-top: 28px;
	padding: 22px 24px;
	border-radius: var(--radius-md);
	background-color: rgb(39 138 43 / .05);
}

.overview-note p {
	color: var(--color-text-sub);
}

.about-business-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.about-business-card {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.about-business-card__title {
	min-height: calc(1.5em * 2);
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.about-business-card__text {
	color: var(--color-text-sub);
}

.about-business-card--link {
	display: block;
	color: inherit;
	text-decoration: none;
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.about-business-card--link:hover {
	text-decoration: none;
	transform: translateY(-4px);
}

.page-copy--center {
	max-width: 920px;
	margin-inline: auto;
	text-align: center;
}

.about-member-actions {
	display: flex;
	justify-content: center;
	margin-top: 28px;
}

.history-list {
	display: grid;
	gap: 20px;
}

.history-item {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 24px;
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.history-item__year {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.6;
	color: var(--color-primary-dark);
}

.history-item__content {
	display: grid;
	gap: 10px;
	color: var(--color-text-sub);
}



.related-guide-grid--about {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 1080px) {
	.related-guide-grid--about {
		grid-template-columns: 1fr;
	}
}



@media (max-width: 1080px) {
	.about-business-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.history-item {
		grid-template-columns: 1fr;
		gap: 12px;
	}
}

@media (max-width: 820px) {
	.overview-card {
		padding: 28px;
	}

	.overview-list,
	.about-business-grid {
		grid-template-columns: 1fr;
	}

	.about-business-card__title {
		min-height: 0;
	}

	.about-member-actions .button {
		width: 100%;
	}
}

@media (max-width: 560px) {
	.overview-note {
		padding: 18px 20px;
	}

	.history-item {
		padding: 22px;
	}
}

/* ごあいさつ */
.greeting-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 150px;
	gap: 32px;
	align-items: start;
}

.greeting-layout__body {
	min-width: 0;
}

.greeting-layout__figure {
	margin: 0;
}

.greeting-layout__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
}

.greeting-layout__caption {
	margin-top: 12px;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.6;
	color: var(--color-text);
	text-align: center;
}

@media (max-width: 980px) {
	.greeting-layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.greeting-layout__figure {
		max-width: 280px;
		margin: 0 auto;
	}
}




/* member-companies (会員企業)
----------------------------------------------------------------------------- */
.page-hero--members {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.member-summary-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	max-width: 760px;
	margin: 0 auto;
}

.member-summary-card {
	padding: 32px 28px;
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-md);
	text-align: center;
}

.member-summary-card__label {
	margin-bottom: 12px;
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-primary);
}

.member-summary-card__count {
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 800;
	line-height: 1;
	color: var(--color-text);
}

.member-summary-card__count span {
	margin-left: 6px;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-text-sub);
}

.member-summary-note {
	margin-top: 20px;
	text-align: center;
	font-size: .95rem;
	color: var(--color-text-sub);
}

.member-company-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.member-company-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 176px;
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
	transition:
		transform .25s ease,
		box-shadow .25s ease,
		border-color .25s ease;
}

a.member-company-card:hover {
	transform: translateY(-4px);
	border-color: rgb(39 138 43 / .28);
	box-shadow: var(--shadow-md);
}

.member-company-card__name {
	margin-bottom: 16px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.member-company-card__area {
	margin-top: auto;
	color: var(--color-text-sub);
}

@media (max-width: 1080px) {
	.member-company-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.member-summary-grid,
	.member-company-grid {
		grid-template-columns: 1fr;
	}

	.member-company-card {
		min-height: 0;
	}
}



/* certification (認定関連事業)
----------------------------------------------------------------------------- */
.page-hero--certification {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.certification-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.certification-card,
.certification-feature-card {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.certification-card {
	display: grid;
	grid-template-rows:
		minmax(calc(1.5em * 2), auto)
		minmax(calc(1.8em * 3), auto)
		1fr
		auto;
	height: 100%;
}

.certification-card--accent {
	border-color: rgb(39 138 43 / .22);
	background-color: rgb(39 138 43 / .05);
}

.certification-card__title,
.certification-feature-card__title {
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.certification-card__text,
.certification-feature-card__text {
	color: var(--color-text-sub);
}

.certification-card__meta {
	display: grid;
	grid-template-rows: repeat(2, auto);
	gap: 14px;
	align-content: start;
	padding-top: 20px;
	border-top: 1px solid rgb(226 235 225);
}

.certification-card__meta div {
	display: grid;
	gap: 6px;
}

.certification-card__meta dt {
	font-size: .9rem;
	font-weight: 700;
	color: var(--color-primary);
}

.certification-card__meta dd {
	color: var(--color-text-sub);
}

.certification-card__actions {
	margin-top: 24px;
	align-self: end;
}

.certification-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

@media (max-width: 1080px) {
	.certification-grid,
	.certification-feature-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 820px) {
	.certification-grid {
		grid-template-columns: 1fr;
	}

	.certification-card {
		display: block;
	}

	.certification-card__title,
	.certification-feature-card__title,
	.certification-card__text {
		min-height: 0;
	}
}



/* certification (認定制度：アパート・マンション／住宅／駐車場)
----------------------------------------------------------------------------- */
.page-hero--certification-detail {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.cert-detail-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.cert-detail-card {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.cert-detail-card--accent {
	border-color: rgb(39 138 43 / .22);
	background-color: rgb(39 138 43 / .05);
}

.cert-detail-card__title {
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.cert-detail-card__text {
	color: var(--color-text-sub);
}

#certification-select .contact-cta__tel {
	text-align: left;
}

@media (max-width: 1080px) {
	.cert-detail-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	#certification-select .contact-cta__tel {
	text-align: center;
	}
}



/* certification (認定実績：AAA/AA/A等級+駐車場)
----------------------------------------------------------------------------- */
.page-hero--certification-record {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.record-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.record-card {
	overflow: hidden;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.record-card__image-wrap {
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background-color: rgb(39 138 43 / .05);
}

.record-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.record-card__image-wrap--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		linear-gradient(180deg, rgb(244 248 243) 0%, rgb(237 244 235) 100%);
}

.record-card__no-photo {
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: .06em;
	color: rgb(111 130 111);
}

.record-card__body {
	display: grid;
	gap: 14px;
	padding: 24px;
}

.record-card__number {
	font-size: .9rem;
	font-weight: 700;
	color: var(--color-primary);
}

.record-card__title {
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.record-card__location {
	color: var(--color-text-sub);
}

.record-card__meta {
	display: grid;
	gap: 12px;
	padding-top: 18px;
	border-top: 1px solid rgb(226 235 225);
}

.record-card__meta div {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 12px;
}

.record-card__meta dt {
	font-size: .9rem;
	font-weight: 700;
	color: var(--color-primary);
}

.record-card__meta dd {
	color: var(--color-text-sub);
}

.certification-feature-card__actions {
	margin-top: 20px;
}

/* 住宅認定基準＋申込書DL */
.overview-download {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 24px;
	margin-block-end: 32px;
	padding: 22px 24px;
	border-radius: var(--radius-md);
	background-color: rgb(39 138 43 / .05);
}

.overview-download__text {
	color: var(--color-text-sub);
}

@media (max-width: 820px) {
	.overview-download {
		flex-direction: column;
		align-items: stretch;
	}
}


@media (max-width: 1080px) {
	.record-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.record-grid {
		grid-template-columns: 1fr;
	}
}




/* related-organizations (防犯関連機関)
----------------------------------------------------------------------------- */
.page-hero--related {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.related-org-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.related-org-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.related-org-card__title {
	margin-bottom: 14px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.related-org-card__text {
	color: var(--color-text-sub);
}

.related-org-card__actions {
	margin-top: auto;
	padding-top: 24px;
}

.related-guide-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.related-guide-card {
	display: block;
	height: 100%;
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
	text-decoration: none;
	transition:
		transform .25s ease,
		box-shadow .25s ease,
		border-color .25s ease;
}

.related-guide-card:hover {
	transform: translateY(-4px);
	border-color: rgb(39 138 43 / .28);
	box-shadow: var(--shadow-md);
}

.related-guide-card__title {
	margin-bottom: 12px;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.related-guide-card__text {
	color: var(--color-text-sub);
}

@media (max-width: 1080px) {
	.related-org-grid,
	.related-guide-grid {
		grid-template-columns: 1fr;
	}
}





/* sitemap (サイトマップ)
----------------------------------------------------------------------------- */
.page-hero--sitemap {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

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

.sitemap-card {
	height: 100%;
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.sitemap-card__title {
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
}

.sitemap-card__title a {
	color: var(--color-text);
	text-decoration: none;
	transition: opacity .25s ease;
}

.sitemap-card__title a:hover {
	opacity: .72;
}

.sitemap-card__text {
	color: var(--color-text-sub);
}

.sitemap-card--link {
	display: block;
	color: inherit;
	text-decoration: none;
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.sitemap-card--link:hover {
	text-decoration: none;
	transform: translateY(-4px);
}

.sitemap-tree {
	display: grid;
	gap: 24px;
}

.sitemap-tree__group {
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.sitemap-tree__title {
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
}

.sitemap-tree__title a {
	color: var(--color-text);
	text-decoration: none;
	transition: opacity .25s ease;
}

.sitemap-tree__title a:hover {
	opacity: .72;
}

.sitemap-tree__list {
	display: grid;
	gap: 10px;
	margin-top: 18px;
	padding-left: 18px;
}

.sitemap-tree__list li {
	color: var(--color-text-sub);
}

.sitemap-tree__list a {
	color: var(--color-primary-dark);
	text-decoration: none;
	transition: opacity .25s ease;
}

.sitemap-tree__list a:hover {
	opacity: .72;
}

@media (max-width: 1080px) {
	.sitemap-grid {
		grid-template-columns: 1fr;
	}
}





/* membership-guide (会員入会のご案内)
----------------------------------------------------------------------------- */
.page-hero--membership {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.membership-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.membership-card {
	height: 100%;
	padding: 28px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.membership-card--accent {
	border-color: rgb(39 138 43 / .22);
	background-color: rgb(39 138 43 / .05);
}

.membership-card__title {
	margin-bottom: 12px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.membership-card__text {
	color: var(--color-text-sub);
}

.concern-grid--membership {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.membership-links {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

@media (max-width: 1080px) {
	.membership-grid,
	.concern-grid--membership {
		grid-template-columns: 1fr;
	}
}

#membership-guide .overview-download {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 24px;
	margin-bottom: 32px;
	padding: 22px 24px;
	border-radius: var(--radius-md);
	background-color: rgb(39 138 43 / .05);
}

#membership-guide .overview-download__text {
	color: var(--color-text-sub);
}

#membership-guide .overview-download__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

@media (max-width: 820px) {
	#membership-guide .overview-download {
		flex-direction: column;
		align-items: stretch;
	}

	#membership-guide .overview-download__actions {
		flex-direction: column;
	}
}

/* 会費 */
.membership-fee-wrap {
	display: grid;
	gap: 18px;
}

.membership-fee-card {
	overflow: hidden;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.membership-fee-card__head {
	display: grid;
	align-items: center;
	padding: 16px 24px;
	background-color: rgb(39 138 43 / .08);
	border-bottom: 1px solid rgb(166 189 164 / .24);
}

.membership-fee-card__head--3col,
.membership-fee-item--3col {
	grid-template-columns: minmax(0, 1.5fr) minmax(110px, .75fr) minmax(110px, .75fr);
	gap: 16px;
}

.membership-fee-card__label {
	font-size: .95rem;
	font-weight: 700;
	color: var(--color-primary-dark);
}

.membership-fee-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.membership-fee-item {
	display: grid;
	align-items: center;
	padding: 18px 24px;
	border-top: 1px solid rgb(166 189 164 / .18);
}

.membership-fee-item:first-child {
	border-top: 0;
}

.membership-fee-item__type {
	font-weight: 700;
	color: var(--color-text);
}

.membership-fee-item__value {
	color: var(--color-text-sub);
}

.membership-fee-note {
	color: var(--color-text-sub);
}

@media (max-width: 820px) {
	.membership-fee-card__head {
		display: none;
	}

	.membership-fee-item--3col {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.membership-fee-item {
		padding: 18px 20px;
	}

	.membership-fee-item__value {
		position: relative;
		padding-left: 6.5em;
	}

	.membership-fee-item__value:nth-of-type(2)::before {
		content: "入会金";
		position: absolute;
		left: 0;
		font-weight: 700;
		color: var(--color-primary-dark);
	}

	.membership-fee-item__value:nth-of-type(3)::before {
		content: "年会費";
		position: absolute;
		left: 0;
		font-weight: 700;
		color: var(--color-primary-dark);
	}
}






/* news (活動報告・お知らせ)
----------------------------------------------------------------------------- */
.news-article-hero__inner {
	max-width: 860px;
}

.news-article-hero__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
}

.news-article-hero__category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 6px 12px;
	border-radius: 999px;
	background-color: rgb(39 138 43 / .10);
	font-size: .9rem;
	font-weight: 700;
	color: var(--color-primary-dark);
}

.news-article-hero__date {
	font-size: .95rem;
	font-weight: 700;
	color: var(--color-text-sub);
}

.news-article-hero__title {
	font-size: clamp(2rem, 3vw, 2.7rem);
	font-weight: 800;
	line-height: 1.35;
	color: var(--color-text);
}

.news-article-hero__lead {
	margin-top: 18px;
	font-size: 1.05rem;
	line-height: 1.9;
	color: var(--color-text-sub);
}

.news-article {
	display: grid;
	gap: 32px;
}

.news-article__media {
	max-width: 760px;
	margin: 0 auto;
	width: 100%;
}

.news-article__image-wrap {
	margin: 0;
}

.news-article__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
}

.news-article__body {
	max-width: 860px;
	margin: 0 auto;
	width: 100%;
}

.related-guide-grid--article {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 1080px) {
	.related-guide-grid--article {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 820px) {
	.news-article {
		gap: 24px;
	}

	.news-article__media,
	.news-article__body {
		max-width: 100%;
	}
}






/* privacy-policy (個人情報保護方針)
----------------------------------------------------------------------------- */
.page-hero--privacy {
	background:
		linear-gradient(135deg, rgb(29 104 33) 0%, rgb(39 138 43) 52%, rgb(104 181 39) 100%);
}

.privacy-panel {
	padding: 32px;
	border: 1px solid rgb(166 189 164 / .28);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

#privacy-policy .privacy-panel .page-copy {
	margin-bottom: 28px;
}

.privacy-policy-list {
	margin-top: 24px;
	padding-left: 1.5em;
	list-style: decimal;
	list-style-position: outside;
}

.privacy-policy-list li {
	display: list-item;
	margin-top: 16px;
	color: var(--color-text);
}

.privacy-policy-list li:first-child {
	margin-top: 0;
}

.privacy-note {
	margin-top: 24px;
	font-weight: 700;
	color: var(--color-text-sub);
}

.privacy-rules {
	display: grid;
	gap: 32px;
}

.privacy-rule-block {
	padding: 32px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
	scroll-margin-top: 110px; /* アンカー位置調整 */
}

.privacy-rule-block__title {
	margin: 0 0 20px;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.privacy-rule-block__body {
	display: grid;
	gap: 14px;
	max-width: 920px;
	color: var(--color-text-sub);
}

.privacy-rule-block__body ul,
.privacy-rule-block__body ol {
	padding-left: 1.5em;
}

.privacy-rule-block__body li + li {
	margin-top: 8px;
}

@media (max-width: 820px) {
	.privacy-rules {
		gap: 24px;
	}
	.privacy-panel,
	.privacy-rule-block {
		padding: 24px 20px;
	}
}

/* 個人情報保護方針 */
.privacy-article + .privacy-article {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid rgb(166 189 164 / .20);
}

.privacy-article__title {
	margin: 0 0 12px;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.6;
	color: var(--color-text);
}

.privacy-number-list {
	display: grid;
	gap: 16px;
	margin-top: 16px;
	padding-left: 1.5em;
}


.privacy-article .privacy-number-list + p,
.privacy-article .privacy-subnumber-list + p {
	margin-top: 20px;
}

.privacy-article p + .privacy-number-list,
.privacy-article p + .privacy-subnumber-list {
	margin-top: 20px;
}
.privacy-number-list > li:has(.privacy-subnumber-list) {
	padding-bottom: 12px;
}

.privacy-number-list li {
	color: var(--color-text-sub);
}

.privacy-number-list li strong {
	display: inline-block;
	margin-bottom: 6px;
	color: var(--color-text);
}

.privacy-subnumber-list {
	display: grid;
	gap: 10px;
	margin-top: 10px;
	padding-left: 1.4em;
}

.privacy-number-list > li > strong {
	display: inline-block;
	margin-bottom: 4px;
	color: var(--color-text);
}


@media (max-width: 820px) {
	.privacy-article + .privacy-article {
		margin-top: 20px;
		padding-top: 20px;
	}

	.privacy-number-list {
		gap: 14px;
	}
}

/* 目次 */
.privacy-index {
	padding: 24px 28px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.privacy-index__title {
	margin: 0 0 16px;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}

.privacy-index__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 20px;
	margin: 0;
	padding-left: 1.2em;
}

.privacy-index__list li {
	color: var(--color-text-sub);
}

.privacy-index__list a {
	color: var(--color-text);
	text-decoration: none;
}

.privacy-index__list a:hover {
	text-decoration: underline;
}

@media (max-width: 820px) {
	.privacy-index {
		padding: 20px;
	}

	.privacy-index__list {
		grid-template-columns: 1fr;
		gap: 8px;
	}
}


/* 個人情報保護体制と組織 */
.privacy-organization-list {
	display: grid;
	gap: 14px;
	margin-top: 20px;
}

.privacy-organization-list div {
	display: grid;
	grid-template-columns: minmax(220px, 320px) 1fr;
	gap: 12px 20px;
	padding: 14px 0;
	border-bottom: 1px solid rgb(166 189 164 / .20);
}

.privacy-organization-list div:first-child {
	border-top: 1px solid rgb(166 189 164 / .20);
}

.privacy-organization-list dt {
	font-weight: 700;
	color: var(--color-text);
}

.privacy-organization-list dd {
	margin: 0;
	color: var(--color-text-sub);
}

@media (max-width: 820px) {
	.privacy-organization-list div {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}



/* 個人情報保護ページの番号表示を強制する */
.privacy-policy-list,
.privacy-number-list,
.privacy-subnumber-list {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.privacy-policy-list,
.privacy-number-list {
	counter-reset: privacy-item;
}

.privacy-policy-list > li,
.privacy-number-list > li {
	position: relative;
	padding-left: 2.2em;
	counter-increment: privacy-item;
}

.privacy-policy-list > li::before,
.privacy-number-list > li::before {
	content: counter(privacy-item) ".";
	position: absolute;
	top: .03em;
	left: 0;
	font-weight: 500;
	color: var(--color-text);
}

.privacy-policy-list > li + li,
.privacy-number-list > li + li {
	margin-top: 16px;
}

.privacy-subnumber-list {
	counter-reset: privacy-subitem;
	margin-top: 10px;
}

.privacy-subnumber-list > li {
	position: relative;
	padding-left: 2.4em;
	counter-increment: privacy-subitem;
}

.privacy-subnumber-list > li::before {
	content: counter(privacy-subitem) "）";
	position: absolute;
	top: .07em;
	left: 0;
	font-size: .95em;
	font-weight: 500;
	color: var(--color-text-sub);
}

.privacy-subnumber-list > li + li {
	margin-top: 10px;
}







/* footer
----------------------------------------------------------------------------- */
.footer {
	padding: 40px 0 28px;
	color: rgb(235 244 232);
	background-color: rgb(29 104 33);
}

.footer__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgb(255 255 255 / .14);
}

.footer__brand {
	display: inline-flex;
	align-items: center;
}

.footer__logo-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 14px;
	border: 1px solid rgb(255 255 255 / .18);
	border-radius: 14px;
	background:
		linear-gradient(180deg, rgb(255 255 255) 0%, rgb(246 250 245) 100%);
	box-shadow: 0 8px 20px rgb(0 0 0 / .10);
}

.footer__logo {
	width: 100%;
	max-width: 260px;
	height: auto;
}

.footer__nav-list {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 24px;
}

.footer__nav a {
	color: rgb(235 244 232);
}

.footer__nav a:hover {
	opacity: .8;
}

/* 会員専用ページリンク */
.footer__member-link {
	margin-top: 28px;
	padding: 18px 20px;
	border: 1px solid rgb(255 255 255 / .18);
	border-radius: var(--radius-md);
	background-color: rgb(255 255 255 / .06);
	text-align: center;
}

.footer__member-label {
	margin-bottom: 8px;
	font-size: .95rem;
	font-weight: 700;
	color: rgb(255 255 255 / .82);
}

.footer__member-action a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 18px;
	border-radius: 999px;
	background-color: rgb(255 255 255 / .12);
	color: var(--color-white);
	font-weight: 700;
	text-decoration: none;
	transition:
		background-color .25s ease,
		opacity .25s ease;
}

.footer__member-action a:hover {
	background-color: rgb(255 255 255 / .18);
}

/* コピーライト */
.footer__bottom {
	padding-top: 20px;
}

.footer__bottom p,
.footer__bottom small,
.footer__bottom .ft-s2 {
	font-size: 0.875rem;
	color: rgb(214 232 209);
}

/* 電話 */
.footer__contact {
	margin-top: 28px;
	padding: 20px 24px;
	border: 1px solid rgb(166 189 164 / .24);
	border-radius: var(--radius-md);
	background-color: rgb(255 255 255 / .08);
	text-align: center;
}

.footer__contact-label {
	margin: 0 0 8px;
	font-size: .98rem;
	font-weight: 700;
	line-height: 1.6;
	color: rgb(245 248 243);
}

.footer__contact-tel {
	margin: 0;
}

.footer__contact-tel a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.4;
	color: rgb(232 248 219);
	text-decoration: none;
	letter-spacing: .02em;
}

.footer__contact-icon {
	font-size: 1.1em;
	line-height: 1;
	transform: translateY(-.03em);
	opacity: .95;
}

.footer__contact-number {
	display: inline-block;
}

.footer__contact-tel a:hover {
	text-decoration: underline;
}

@media (max-width: 820px) {
	.footer__contact {
		margin-top: 24px;
		padding: 18px 20px;
	}

	.footer__contact-label {
		font-size: .94rem;
	}

	.footer__contact-tel a {
		font-size: 1.08rem;
	}
}








/* 共通：SP対応 
----------------------------------------------------------------------------- */
@media (max-width: 1130px) {
	.header__toggle {
		display: inline-block;
	}

	.header__nav {
		position: absolute;
		top: calc(100% + 8px);
		right: 20px;
		width: min(320px, calc(100vw - 40px));
		padding: 18px;
		border: 1px solid rgb(166 189 164 / .24);
		border-radius: 20px;
		background-color: rgb(255 255 255 / .98);
		box-shadow: var(--shadow-md);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition:
			opacity .25s ease,
			visibility .25s ease,
			transform .25s ease;
	}

	.header__nav.is-open {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.header__nav-list {
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
	}

	/*
	.fv__inner,
	*/
	.remote__inner,
	.about__grid {
		grid-template-columns: 1fr;
	}

	/*
	.fv__side {
		max-width: 760px;
	}
	*/
}

@media (max-width: 820px) {
	.section {
		padding: 80px 0;
	}

	/*
	.fv {
		padding: 72px 0 64px;
	}
	*/

	.issues__grid,
	.support__grid,
	.flow__list,
	.news__list,
	.trust__grid {
		grid-template-columns: 1fr;
	}

	.compliance__box,
	.contact__box,
	.remote__inner {
		padding: 28px;
	}

	.footer__top {
		flex-direction: column;
		align-items: flex-start;
	}

	.header__logo {
		max-width: 260px;
	}
}

@media (max-width: 560px) {
	/* .fv__inner をカット */
	.container,
	.header__inner {
		width: min(100% - 32px, var(--content-width));
	}

	.section {
		padding: 68px 0;
	}

	.header__logo {
		max-width: 210px;
	}

	/*
	.fv__lead,
	*/
	.intro__body,
	.issues__lead,
	.remote__lead,
	.compliance__lead {
		font-size: 1rem;
	}

	/*
	.fv__buttons,
	*/
	.contact__buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.button {
		width: 100%;
	}

	.compliance__list {
		flex-direction: column;
		align-items: flex-start;
	}

	.footer__logo {
		max-width: 220px;
	}

	/*
	.fv__panel-card {
		padding: 22px;
	}
	*/
}

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

	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
	}
}