@charset "utf-8";


/* =============== RESET-ish / BASE =============== */

* {
	box-sizing:border-box;
	-webkit-font-smoothing:antialiased;
	scroll-margin-top:3em;
	-webkit-text-size-adjust:100%;
}
html,body {
	font-size:16px;
}
body {
	margin:0;
	font-family:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
	color:#4A4A4A;/* Body Gray */
	background-color:#FFFFFF;
	line-height:1.7;
	overflow-x:hidden;
}

#top {
	margin:0 auto;
}
@media (min-width:721px){
	#top {
		min-width:1200px;
	}
}
@media (max-width:720px){
	body {
		text-align:justify;
	}
	#top {
		width:480px;
	}
	.sp-narrow {
		letter-spacing:-0.5px;
	}
}

img {
	max-width:100%;
	height:auto;
	display:block;
	backface-visibility:hidden;
	image-rendering:-webkit-optimize-contrast;
}

h1,h2,h3,h4,h5 {
	color:#1A1A1A;/* Heading Black */
	line-height:1.4;
	margin:0 0 0.5rem;
	font-weight:700;
}
@media (max-width:720px){
	h1,h2,h3,h4,h5 {
		font-size:1.1rem;
	}
}
p {
	margin:0 0 1.5em;
}

ul,ol {
	margin:0 0 1.5em;
	padding-left:1.2em;
}

a {
	color:inherit;
	text-decoration:inherit;
}
a[href^="tel:"]:not([class]) ,
a[href^="mailto:"]:not([class]) {
	border-bottom:1px dashed;
}

@media (min-width:721px){
	a[href^="tel:"]:not([class]) {
		pointer-events:none;
		border-bottom:0 none;
	}
}

.google-icon {
	font-family:'Material Symbols Outlined';
}
.container {
	max-width:1200px;
	padding:0 1.2rem;
	margin:0 auto;
}

.noPage {
	height:50vh;
	padding-bottom:10rem;
	display:flex;
	justify-content:center;
	align-items:center;
}



/* =============== COLOR TOKENS =============== */

:root {
	--green-main:#22875A;
	--bg-alt:#F5F6F7;
	--bg-alt:#eaf8ec;
	--line-gray:#D9DEE3;
	--text-heading:#1A1A1A;
	--text-body:#3a3a3a;
	--bg-white:#FFFFFF;
	--radius-card:4px;
}

/* =============== HEADER =============== */

.site-header {
	border-bottom:3px solid var(--green-main);
	background-color:rgba(255,255,255,0.9);
	backdrop-filter:blur(6px);
	box-shadow:0 2px 8px rgba(0,0,0,0.04);
	position:sticky;
	top:0;
	z-index:1000;
}

.header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding-top:1.2rem;
	padding-bottom:1.2rem;
	gap:1.5rem;
}

.brand-link {
	display:flex;
	align-items:center;
	text-decoration:none;
	transition:opacity 0.2s ease;
}
.brand-link:hover {
	opacity:0.7;
}

.brand-mark {
	padding-right:0.4em;
}
.brand-mark img {
	height:2.6em;
	opacity:0.8;
}

.brand-name {
	font-size:1.1rem;
	font-weight:700;
	color:var(--text-heading);
	line-height:1.3;
	display:block;
}

.brand-tagline {
	font-size:0.7rem;
	font-weight:600;
	color:var(--green-main);
	line-height:1.3;
	display:block;
	margin-top:4px;
	letter-spacing:0.08em;
	text-transform:uppercase;
}
@media (max-width:720px){
	.brand-mark img {
		height:3.2em;
	}
}

.global-nav ul {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:1rem;
	list-style:none;
	padding:0;
	margin:0;
}

.global-nav a {
	text-decoration:none;
	color:var(--text-heading);
	font-size:0.9rem;
	font-weight:600;
	line-height:1.4;
	position:relative;
	display:inline-block;
	padding:0 0.2em 0.2em;
	transition:color 0.2s ease;
}
.global-nav a:not(.nav-cta)::after {
	content:"";
	position:absolute;
	left:0;
	bottom:0;
	width:0;
	height:2px;
	background-color:var(--green-main);
	transition:width 0.3s ease;
}

@media (min-width:721px){
	.global-nav a:not(.nav-cta):hover {
		color:var(--green-main);
	}
	.global-nav a:not(.nav-cta):hover::after ,
	.global-nav a:not(.nav-cta).active::after {
		width:100%;
	}
}



.global-nav a.nav-cta {
	background-color:var(--green-main);
	color:#FFFFFF;
	padding:0.2em 1rem 0.3rem;
	border-radius:var(--radius-card);
	font-size:0.9rem;
	font-weight:600;
	line-height:1.4;
	border:2px solid var(--green-main);
	transition:all 0.3s ease;
}


.global-nav a.nav-cta:hover {
	background-color:#1A6E49;
	border-color:#1A6E49;
	color:#FFFFFF;
	transform:translateY(-2px);
	box-shadow:0 4px 8px rgba(34,135,90,0.2);
}

/* Enhanced grouped nav (mega-lite) */
.global-nav-groups {
	display:flex;
	flex-wrap:nowrap;
	gap:2rem;
}

.nav-group {
	display:flex;
	flex-direction:column;
	min-width:7.5rem;
}

.nav-group-label {
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	color:var(--green-main);
	letter-spacing:0.08em;
	text-transform:uppercase;
	margin:0 0 8px;
}

.nav-group-links {
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	row-gap:8px;
}

.nav-group-links a {
	text-decoration:none;
	font-size:0.8rem;
	line-height:1.4;
	font-weight:600;
	color:var(--text-heading);
}

.nav-group-links a:hover {
	text-decoration:underline;
}

.nav-toggle {
	display:none;
	background-color:var(--green-main);
	border:none;
	line-height:1;
	cursor:pointer;
	height:95%;
	aspect-ratio:1/1;
	padding:0;
	color:#FFFFFF;
	border-radius:var(--radius-card);
	transition:all 0.3s ease;
}
.nav-toggle span {
	font-size:3rem;
}
.nav-toggle:hover {
	background-color:#1A6E49;
	transform:scale(1.05);
}

/* =============== SECTIONS (Spacing / Head) =============== */

.section-block {
	padding-top:64px;
	padding-bottom:64px;
	background-color:var(--bg-white);
}


.section-bg-alt {
	background-color:var(--bg-alt);
}

/* =============== SECTION BACKGROUND VARIANTS ===============
	 1) section-block-pattern:
			グレー(#F5F6F7)の帯の中に白い面を浮かせる監査/公式資料系セクション
			.pattern-surface が白い角丸ボックスになる

	 2) section-block-accentgray:
			大林組BUSINESSのような「淡いグレー面＋白い斜めハイライト」の背景アクセント
			セクション単位で使う。ページ全体は白のまま。
*/

/* グレー帯 + 白い大きなカード */
.section-block-pattern {
	background-color:var(--bg-alt);/* #F5F6F7 */
	padding-top:64px;
	padding-bottom:64px;
}

.pattern-surface {
	background-color:#FFFFFF;
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
	padding:40px 2rem;
}

/* 斜めに白い面が差し込まれたようなアクセントつきグレー背景 */
.section-block-accentgray {
	position:relative;
	background-color:#F5F6F7;
	padding-top:64px;
	padding-bottom:64px;
	overflow:hidden;/* 擬似要素のはみ出しを隠す */
}

.section-block-accentgray::before {
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:70%;
	height:60%;
	background:linear-gradient(
		to bottom right,
		rgba(255,255,255,0.9) 0%,
		rgba(255,255,255,0.0) 70%
	);
	transform:translate(-10%,-10%) skewY(-4deg);
	border-radius:0 0 8px 0;
	pointer-events:none;
}

.section-block-accentgray .container {
	position:relative;
	z-index:1;/* 擬似要素より前面にテキストを表示 */
}

/* Soft white patterned section background
	 - Use for '事業内容'
	 - Keeps base white,but adds subtle radial/angled highlight so it's not plain.
*/
.section-block-softpattern {
	position:relative;
	background-color:#FFFFFF;
	padding-top:64px;
	padding-bottom:64px;
	overflow:hidden;
}

.section-block-softpattern::before {
	content:"";
	position:absolute;
	top:-10%;
	left:-10%;
	width:60%;
	height:60%;
	background:radial-gradient(
		circle at 20% 20%,
		rgba(34,135,90,0.06) 0%,
		rgba(255,255,255,0) 70%
	);
	filter:blur(40px);
	border-radius:50%;
	pointer-events:none;
}

.section-block-softpattern::after {
	content:"";
	position:absolute;
	right:-20%;
	bottom:-20%;
	width:50%;
	height:50%;
	background:radial-gradient(
		circle at 80% 80%,
		rgba(0,0,0,0.04) 0%,
		rgba(255,255,255,0) 70%
	);
	filter:blur(60px);
	pointer-events:none;
}

.section-block-softpattern .container {
	position:relative;
	z-index:1;
}

.section-pattern-canvas {
	position:absolute;
	inset:0;
	z-index:0;
	pointer-events:none;
	overflow:hidden;
}

.section-flow-pattern,
.section-orb-pattern,
.section-wave-pattern {
	position:relative;
	overflow:hidden;
	--pattern-primary:rgba(34,135,90,0.14);
	--pattern-secondary:rgba(34,135,90,0.08);
	--pattern-tertiary:rgba(34,135,90,0.04);
}

.section-flow-pattern > .container,
.section-orb-pattern > .container,
.section-wave-pattern > .container {
	position:relative;
	z-index:1;
}

.section-flow-pattern .section-pattern-canvas::before,
.section-flow-pattern .section-pattern-canvas::after,
.section-orb-pattern .section-pattern-canvas::before,
.section-orb-pattern .section-pattern-canvas::after,
.section-wave-pattern .section-pattern-canvas::before,
.section-wave-pattern .section-pattern-canvas::after {
	content:"";
	position:absolute;
	inset:0;
	opacity:0.9;
}

.section-flow-pattern .section-pattern-canvas::before {
	top:-40%;
	left:-25%;
	right:auto;
	bottom:auto;
	width:160%;
	height:160%;
	background:radial-gradient(
		ellipse 60% 45% at 15% 25%,
		var(--pattern-primary) 0%,
		transparent 70%
	);
	filter:blur(8px);
}

.section-flow-pattern .section-pattern-canvas::after {
	bottom:-30%;
	right:-15%;
	left:auto;
	top:auto;
	width:120%;
	height:120%;
	background:radial-gradient(
		ellipse 70% 40% at 80% 80%,
		var(--pattern-secondary) 0%,
		transparent 70%
	),
	radial-gradient(
		circle at 60% 30%,
		var(--pattern-tertiary) 0%,
		transparent 65%
	);
	filter:blur(18px);
}

.section-orb-pattern .section-pattern-canvas::before {
	top:-35%;
	right:-10%;
	width:70%;
	height:70%;
	border-radius:50%;
	background:radial-gradient(
		circle,
		var(--pattern-primary) 0%,
		transparent 70%
	);
	filter:blur(20px);
}

.section-orb-pattern .section-pattern-canvas::after {
	bottom:-30%;
	left:-20%;
	width:60%;
	height:60%;
	border-radius:50%;
	background:radial-gradient(
		circle,
		var(--pattern-secondary) 0%,
		transparent 75%
	);
	filter:blur(12px);
}

.section-wave-pattern .section-pattern-canvas::before {
	inset:auto -20% -50% -20%;
	height:70%;
	background:radial-gradient(
		ellipse 80% 60% at 50% 100%,
		var(--pattern-primary) 0%,
		transparent 75%
	);
	filter:blur(14px);
}

.section-wave-pattern .section-pattern-canvas::after {
	inset:-30% -30% auto -30%;
	height:60%;
	background:radial-gradient(
		ellipse 70% 45% at 30% 0%,
		var(--pattern-secondary) 0%,
		transparent 70%
	);
}

.pattern-green {
	--pattern-primary:rgba(34,135,90,0.18);
	--pattern-secondary:rgba(34,135,90,0.10);
	--pattern-tertiary:rgba(34,135,90,0.06);
}

.pattern-sand {
	--pattern-primary:rgba(197,165,114,0.2);
	--pattern-secondary:rgba(197,165,114,0.12);
	--pattern-tertiary:rgba(197,165,114,0.07);
}

.pattern-slate {
	--pattern-primary:rgba(84,110,136,0.18);
	--pattern-secondary:rgba(84,110,136,0.1);
	--pattern-tertiary:rgba(84,110,136,0.06);
}

.pattern-mist {
	--pattern-primary:rgba(93,163,199,0.18);
	--pattern-secondary:rgba(93,163,199,0.12);
	--pattern-tertiary:rgba(93,163,199,0.07);
}

.pattern-amber {
	--pattern-primary:rgba(242,179,93,0.22);
	--pattern-secondary:rgba(242,179,93,0.14);
	--pattern-tertiary:rgba(242,179,93,0.08);
}


.section-head {
	display:flex;
	flex-wrap:nowrap;
	gap:1rem;
	align-items:flex-start;
	margin-bottom:2rem;
}

.section-head-accent {
	flex-shrink:0;
	width:4px;
	background-color:var(--green-main);
	border-radius:2px;
	height:100%;
	min-height:48px;
}


/* =============== HERO =============== */

.section-hero {
	background-color:#FFFFFF;
	padding-top:64px;
	padding-bottom:64px;
	position:relative;
	overflow:hidden;
}

/* Hero with background image */
.section-hero.has-bg-image {
	position:relative;
	background-size:cover;
	background-position:center center;
	background-repeat:no-repeat;
	min-height:400px;
	display:flex;
	color:#FFFFFF;
}

.section-hero.has-bg-image::before {
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(
		135deg,
		rgba(0,0,0,0.75) 0%,
		rgba(0,0,0,0.65) 50%,
		rgba(0,0,0,0.75) 100%
	);
	z-index:1;
}

.section-hero.has-bg-image .hero-inner {
	position:relative;
	z-index:2;
}

.section-hero.has-bg-image .section-label {
	color:var(--green-main);
}

.section-hero.has-bg-image .hero-title {
	color:#FFFFFF;
}

.section-hero.has-bg-image .hero-desc {
	color:#FFFFFF;
	opacity:0.95;
}

.hero-inner {
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:40px;
	flex-wrap:wrap;
}

.hero-copy {
	flex:1 1 480px;
	min-width:20rem;
}

.section-label {
	font-size:0.9rem;
	font-weight:600;
	color:var(--green-main);
	line-height:1.4;
	margin-bottom:1rem;
	display:inline-block;
}

.hero-title {
	font-size:2rem;
	line-height:1.3;/* h1ルール */
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 1.5rem;
}

.hero-desc {
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
}

.hero-cta-row {
	display:flex;
	flex-wrap:wrap;
	gap:1rem;
}

.btn-primary {
	background-color:var(--green-main);
	color:#FFFFFF;
	border-radius:var(--radius-card);
	font-size:1rem;
	font-weight:600;
	line-height:1.4;
	text-decoration:none;
	padding:12px 1.2rem;
	border:1px solid var(--green-main);
	display:inline-block;
}

.btn-primary:hover {
	background-color:#1A6E49;
	border-color:#1A6E49;
}

.btn-outline {
	background-color:transparent;
	color:var(--green-main);
	border-radius:var(--radius-card);
	font-size:1rem;
	font-weight:600;
	line-height:1.4;
	text-decoration:none;
	padding:12px 1.2rem;
	border:1px solid var(--green-main);
	display:inline-block;
}

.btn-outline:hover {
	background-color:rgba(34,135,90,0.07);
}

.hero-visual {
	flex:1 1 360px;
	min-width:280px;
}

.hero-placeholder {
	background:linear-gradient(
		135deg,
		rgba(34,135,90,0.15) 0%,
		rgba(255,255,255,0) 70%
	);
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	min-height:13.7rem;
	color:var(--text-body);
	font-size:0.9rem;
	line-height:1.6;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
}

/* =============== HERO (DARK / VIDEO OVERLAY VARIANT) =============== */
/* このブロックはTOPページ専用のフルスクリーン動画ヒーローを想定。
	 - <section class="hero-video-section">
			 <div class="hero-video-bg"><video /></div>
			 <div class="hero-video-overlay"></div>
			 <div class="hero-video-content container">
				 <div class="hero-video-main"> ...コピー/CTA... </div>
				 <aside class="numbers-block"> ...数字で見る... </aside>
			 </div>
		 </section>
*/

/* このブロックはTOPページ専用のフルスクリーン動画ヒーローを想定。
	 - <section class="hero-video-section">
			 <div class="hero-video-bg"><video /></div>
			 <div class="hero-video-overlay"></div>
			 <div class="hero-video-content container">
				 <div class="hero-video-main"> ...コピー/CTA... </div>
				 <aside class="numbers-block"> ...数字で見る... </aside>
			 </div>
		 </section>
*/
.hero-video-section {
	position:relative;
	min-height:85vh;
	min-height:clamp(75vh,92vh,960px);
	color:#FFFFFF;
	display:flex;
	align-items:flex-end;
	padding-top:96px;
	padding-bottom:64px;
}

.hero-video-bg {
	position:absolute;
	inset:0;
	overflow:hidden;
	z-index:0;
}

.hero-video-frame,
.hero-video-frame > div {
	width:100%;
	height:100%;
}
.hero-video-frame > div > * {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}
.hero-video-frame .video {
	position:relative;
	z-index:1;
}
.hero-video-frame .img {
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	z-index:2;
	display:none;
	width:100%;
	height:100%;
	object-fit:cover;
}

@media (min-width:721px){
	.hero-video-frame.sp {
		display:none;
	}
}
@media (max-width:720px){
	.hero-video-frame.pc {
		display:none;
	}
}

.hero-video-overlay {
	position:absolute;
	inset:0;
	/* Lighter radial shade for readability without over-darkening */
	background:radial-gradient(
		circle at 30% 30%,
		rgba(0,0,0,0.10) 0%,
		rgba(0,0,0,0.25) 55%,
		rgba(0,0,0,0.40) 100%
	);
	/* Subtle green tint,much less opaque */
	background-color:rgba(7,28,18,0.25);
	/* Do not darken via multiply to keep overall brightness */
	mix-blend-mode:normal;
	z-index:1;
}

.hero-video-overlay::after {
	content:"";
	position:absolute;
	inset:-30% -10%;
	background:radial-gradient(circle at 20% 20%,rgba(128,255,210,0.25),transparent 45%),
							radial-gradient(circle at 80% 30%,rgba(255,255,255,0.15),transparent 40%),
							linear-gradient(120deg,rgba(34,135,90,0.35) 0%,rgba(255,255,255,0) 60%);
	opacity:0.8;
	filter:blur(4px);
	animation:heroOverlaySweep 14s ease-in-out infinite;
	mix-blend-mode:screen;
}

@keyframes heroOverlaySweep {
	0% {
		transform:translate3d(-4%,-6%,0) scale(0.95);
		opacity:0.45;
	}
	40% {
		transform:translate3d(6%,4%,0) scale(1.1);
		opacity:0.9;
	}
	70% {
		transform:translate3d(4%,8%,0) scale(1.2);
		opacity:0.6;
	}
	100% {
		transform:translate3d(-6%,-2%,0) scale(1.05);
		opacity:0.7;
	}
}

.hero-video-content {
	position:relative;
	z-index:2;
	width:100%;
	display:flex;
	flex-wrap:wrap;
	gap:2rem 40px;
	align-items:flex-start;
	justify-content:space-between;
	color:#FFFFFF;
}

/* LEFT BLOCK:メッセージ / 会社ステートメント */
.hero-copy-block {
	flex:1 1 560px;
	min-width:300px;
	max-width:760px;
	color:#FFFFFF;
}

.hero-eyebrow {
	font-size:0.7rem;
	font-weight:600;
	line-height:1.4;
	letter-spacing:0.05em;
	color:var(--green-main);
	display:inline-block;
	margin-bottom:1rem;
	text-transform:uppercase;
}

.hero-headline {
	font-size:2.2rem;
	line-height:1.35;
	font-weight:700;
	color:#FFFFFF;
	margin:0 0 1.5rem;
	letter-spacing:-0.02em;
}

.hero-summary {
	font-size:1rem;
	line-height:1.8;
	font-weight:400;
	color:#FFFFFF;
	opacity:0.9;
	margin:0 0 2rem;
}

.hero-cta-row {
	display:flex;
	flex-wrap:wrap;
	gap:1rem;
	align-items:center;
}

.hero-link {
	font-size:0.9rem;
	font-weight:600;
	line-height:1.4;
	color:#FFFFFF;
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	gap:4px;
	border-bottom:1px solid rgba(255,255,255,0.4);
	padding-bottom:2px;
}

.hero-link .arrow {
	font-size:1rem;
	line-height:1;
	display:inline-block;
	color:#FFFFFF;
}

/* RIGHT BLOCK:グループ指標パネル */
.hero-stats-panel {
	flex:0 0 260px;
	max-width:20rem;
	min-width:240px;
	background-color:rgba(0,0,0,0.45);
	border:1px solid rgba(255,255,255,0.3);
	border-radius:var(--radius-card);
	box-shadow:0 2px 4px rgba(0,0,0,0.4);
	color:#FFFFFF;
	padding:1.2rem 1.2rem 1rem;
	position:relative;
	overflow:hidden;
}

.hero-stats-panel::after {
	content:"";
	position:absolute;
	left:1rem;
	right:1rem;
	bottom:6px;
	height:2px;
	background:linear-gradient(90deg,rgba(34,135,90,0),rgba(34,135,90,0.9),rgba(255,255,255,0));
	animation:heroAccentSlide 3s ease-in-out infinite;
}

.hero-stats-head {
	font-size:0.7rem;
	font-weight:600;
	line-height:1.4;
	color:#FFFFFF;
	opacity:0.8;
	margin:0 0 1rem;
	letter-spacing:0.05em;
}

.hero-stats-list {
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	grid-template-columns:1fr;
	row-gap:1rem;
}

.hero-stats-item {
	border-top:1px solid rgba(255,255,255,0.2);
	padding-top:12px;
}

.hero-stats-item:first-child {
	border-top:none;
	padding-top:0;
}

.hero-stats-value {
	font-size:1rem;
	line-height:1.5;
	font-weight:700;
	color:#FFFFFF;
	margin:0 0 4px;
}

.hero-stats-label {
	font-size:0.7rem;
	line-height:1.5;
	font-weight:500;
	color:#FFFFFF;
	opacity:0.8;
	margin:0;
}

.hero-video-main {
	flex:1 1 480px;
	min-width:300px;
	max-width:720px;
}

.hero-video-label {
	font-size:0.9rem;
	font-weight:600;
	line-height:1.4;
	color:var(--green-main);
	background-color:rgba(0,0,0,0.4);
	border:1px solid rgba(34,135,90,0.6);
	border-radius:var(--radius-card);
	display:inline-block;
	padding:4px 8px;
	margin-bottom:1rem;
}

.hero-video-title {
	font-size:2rem;
	line-height:1.3;
	font-weight:700;
	color:#FFFFFF;
	margin:0 0 1.5rem;
}

.hero-video-desc {
	font-size:1rem;
	line-height:1.8;
	font-weight:400;
	color:#FFFFFF;
	opacity:0.9;
	margin:0 0 2rem;
}

.hero-video-cta-row {
	display:flex;
	flex-wrap:wrap;
	gap:1rem;
}

.hero-video-cta-row .btn-primary {
	background-color:var(--green-main);
	color:#FFFFFF;
	border:1px solid var(--green-main);
}

.hero-video-cta-row .btn-outline {
	border:1px solid #FFFFFF;
	color:#FFFFFF;
}

.hero-video-cta-row .btn-outline:hover {
	background-color:rgba(255,255,255,0.1);
	color:#FFFFFF;
	border-color:#FFFFFF;
}

@keyframes heroFadeUp {
	0% {
		opacity:0;
		transform:translate3d(0,2rem,0) scale(0.98);
	}
	100% {
		opacity:1;
		transform:translate3d(0,0,0) scale(1);
	}
}

@keyframes heroAccentSlide {
	0% {
		opacity:0;
		transform:translateX(-60%);
	}
	40% {
		opacity:1;
	}
	100% {
		opacity:0.4;
		transform:translateX(60%);
	}
}

.motion-fade-up {
	opacity:0;
	transform:translate3d(0,1.5rem,0);
	animation:heroFadeUp 0.9s cubic-bezier(0.16,0.84,0.44,1) forwards;
}

.motion-fade-up-soft {
	opacity:0;
	transform:translate3d(0,1rem,0);
	animation:heroFadeUpSoft 0.85s cubic-bezier(0.2,0.8,0.4,1) forwards;
}

@keyframes heroFadeUpSoft {
	0% {
		opacity:0;
		transform:translate3d(0,18px,0);
	}
	100% {
		opacity:1;
		transform:translate3d(0,0,0);
	}
}

.card-with-glow {
	position:relative;
	overflow:hidden;
}

.card-with-glow::after {
	content:"";
	position:absolute;
	top:-30%;
	bottom:-30%;
	width:45%;
	left:-45%;
	background:linear-gradient(120deg,rgba(255,255,255,0),rgba(255,255,255,0.2),rgba(255,255,255,0));
	transform:translateX(-140%);
	opacity:0;
	animation:cardGlowSweep 18s ease-in-out infinite;
	pointer-events:none;
	mix-blend-mode:screen;
}

@keyframes cardGlowSweep {
	0% {
		transform:translateX(-140%);
		opacity:0;
	}
	15% {
		opacity:0.25;
	}
	40% {
		opacity:0.4;
	}
	60% {
		opacity:0.18;
	}
	100% {
		transform:translateX(180%);
		opacity:0;
	}
}

.motion-delay-1 { animation-delay:0.15s;}
.motion-delay-2 { animation-delay:0.3s;}
.motion-delay-3 { animation-delay:0.45s;}
.motion-delay-4 { animation-delay:0.6s;}
.motion-delay-5 { animation-delay:0.75s;}
.motion-delay-6 { animation-delay:0.9s;}
.motion-delay-7 { animation-delay:1.05s;}
.motion-delay-8 { animation-delay:1.2s;}

@media (prefers-reduced-motion:reduce){
	.motion-fade-up {
		opacity:1;
		transform:none;
		animation:none;
	}

	.motion-fade-up-soft {
		opacity:1;
		transform:none;
		animation:none;
	}

	.hero-video-overlay::after,
	.hero-stats-panel::after,
	.card-with-glow::after {
		animation:none;
		opacity:0;
	}

	.works-bg-canvas {
		animation:none;
		opacity:0.85;
	}
}

/* =============== NUMBERS BLOCK ("数字で見る当グループ") =============== */
/* aside.numbers-block のイメージで、ヒーロー右側 または company.html の中でも再利用可能 */

.numbers-block {
	flex:0 0 260px;
	max-width:20rem;
	min-width:240px;
	border-radius:var(--radius-card);
	background-color:rgba(0,0,0,0.4);
	border:1px solid rgba(255,255,255,0.3);
	color:#FFFFFF;
	padding:1rem 1.2rem;
	box-shadow:0 2px 4px rgba(0,0,0,0.4);
}

.numbers-block-light {
	/* company.htmlなど白背景で使うとこっちを使う */
	background-color:#FFFFFF;
	border:1px solid var(--line-gray);
	color:var(--text-heading);
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
}

.numbers-headline {
	font-size:0.9rem;
	font-weight:700;
	line-height:1.4;
	margin:0 0 12px;
	color:currentColor;
}

.numbers-list {
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	grid-template-columns:1fr;
	row-gap:1rem;
}

.numbers-item {
	display:grid;
	grid-template-columns:auto 1fr;
	column-gap:12px;
	align-items:flex-start;
}

.numbers-value {
	font-size:1.5rem;
	line-height:1.3;
	font-weight:700;
	color:currentColor;
	margin:0;
}

.numbers-label {
	font-size:0.7rem;
	line-height:1.5;
	font-weight:600;
	color:currentColor;
	opacity:0.9;
	margin:0 0 4px;
}

.numbers-note {
	font-size:0.7rem;
	line-height:1.5;
	font-weight:400;
	color:currentColor;
	opacity:0.8;
	margin:0;
}

/* =============== SERVICE GRID =============== */

/* ====== SECTION INTRO (英字アイブロウ + 見出し + リード) ====== */

.section-intro-row {
	display:flex;
	flex-wrap:wrap;
	align-items:flex-start;
	justify-content:space-between;
	gap:1.5rem;
	margin-bottom:2rem;
}

.section-intro-left {
	flex:1 1 720px;
	min-width:280px;
}

.section-eyebrow {
	font-size:0.7rem;
	font-weight:600;
	line-height:1.4;
	letter-spacing:0.08em;
	color:var(--green-main);
	text-transform:uppercase;
}

.section-title {
	font-size:1.5rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 12px;
}
.section-lead {
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
	margin:0;
}

/* ====== "地域連携・協力ネットワーク" 強みカード ====== */

.local-strength-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1.5rem;
}

.local-card {
	background-color:#FFFFFF;
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
	padding:1.5rem;
}

.local-card-label {
	display:inline-block;
	background-color:var(--green-main);
	color:#FFFFFF;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	padding:4px 8px;
	border-radius:4px;
	margin-bottom:12px;
}

.local-card-text {
	font-size:0.9rem;
	line-height:1.7;
	color:var(--text-body);
	margin:0;
}

/* カード上部にビジュアル(写真・サムネ)を必ず置く前提のスタイル
	 例:
	 <div class="card service-card">
		 <div class="card-media"><img ... /></div>
		 <div class="card-body">…</div>
	 </div>
*/

.card-media {
	border-radius:var(--radius-card) var(--radius-card) 0 0;
	overflow:hidden;
	border:1px solid var(--line-gray);
	border-bottom:none;
	background-color:#FFFFFF;
	background-image:repeating-linear-gradient(
		45deg,
		rgba(34,135,90,0.07) 0px,
		rgba(34,135,90,0.07) 10px,
		rgba(255,255,255,0) 10px,
		rgba(255,255,255,0) 1.2rem
	);
	min-height:140px;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:0.8rem;
	line-height:1.5;
	color:var(--text-body);
	text-align:center;
}

.card-media img {
	width:100%;
	aspect-ratio:2/1;
	object-fit:cover;
	display:block;
}

.card-body {
	padding:1.5rem;
}

.service-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1.5rem;
}

.card {
	background-color:#FFFFFF;
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	padding:1.5rem;
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
}
.card.card-message {
	max-width:900px;
	margin:0 auto;
	padding:2rem 3rem 2.5rem;
}
.card.card-message p {
	line-height:2;
}
@media (max-width:720px){
	.card.card-message {
		padding:1.2rem 1.5rem 2rem;
	}
	.card.card-message .text-body ,
	.card.card-message .text-body-last {
		line-height:1.8;
		font-size:1.15rem;
	}
}

.service-card .card-head {
	margin-bottom:12px;
}

.card-title {
	font-size:1.2rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 8px;
}

.card-text {
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
	margin:0 0 1rem;
}

.mini-result {
	border-top:1px solid var(--line-gray);
	padding-top:12px;
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
}

.mini-result-label {
	font-weight:600;
	color:var(--green-main);
	margin-bottom:4px;
	font-size:0.9rem;
}

@media (max-width:720px){
	.card {
		padding:1rem 1.2rem
	}
}


/* =============== WORKS GRID =============== */

.works-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1.5rem;
	margin-bottom:2rem;
}

.work-card {
	display:flex;
	flex-direction:column;
	padding:0 !important;
}

.work-img-placeholder {
	background-color:#FFFFFF;
	background-image:repeating-linear-gradient(
		45deg,
		rgba(34,135,90,0.07) 0px,
		rgba(34,135,90,0.07) 10px,
		rgba(255,255,255,0) 10px,
		rgba(255,255,255,0) 1.2rem
	);
	border-bottom:1px solid var(--line-gray);
	border-radius:var(--radius-card) var(--radius-card) 0 0;
	min-height:7.5rem;
	color:var(--text-body);
	font-size:0.8rem;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
}

.work-body {
	padding:1.2rem 1.5rem 1.5rem;
}

.work-cat {
	font-size:0.7rem;
	font-weight:600;
	line-height:1.4;
	color:var(--green-main);
	margin-bottom:8px;
}

.work-title {
	font-size:1.2rem;
	line-height:1.5;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 12px;
}

.work-meta {
	list-style:none;
	padding:0;
	margin:0;
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
}

.work-meta li {
	margin-bottom:4px;
}

.works-more {
	text-align:center;
}

@media (max-width:720px){
	.work-body {
		padding:1.3rem 1rem;
	}
	.work-title {
		font-size:1.4rem;
	}
	.work-meta {
		font-size:1.1rem;
	}
}


/* =============== COMPLIANCE / PERMITS =============== */

.compliance-wrapper {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1.5rem;
}

.compliance-block {
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	background-color:#FFFFFF;
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
	padding:1.5rem;
}

.compliance-title {
	font-size:1rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	column-gap:8px;
	row-gap:4px;
	margin:0 0 1rem;
	letter-spacing:0;
}

.tag-green {
	background-color:var(--green-main);
	color:#FFFFFF;
	padding:0 8px 1px;
	border-radius:4px;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	letter-spacing:0.05em;
	text-transform:uppercase;
}

.compliance-list {
	list-style:none;
	padding:0;
	margin:0 0 1rem;
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
	display:grid;
	row-gap:12px;
}

.comp-item {
	border-top:1px solid var(--line-gray);
	padding-top:12px;
}

.comp-item:first-child {
	border-top:none;
	padding-top:0;
}

.comp-item-head {
	font-size:1rem;
	line-height:1.5;
	font-weight:600;
	color:var(--text-heading);
	margin:0 0 4px;
}

.comp-item-desc {
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
	margin:0;
	padding-left:1em;
}

.comp-item.flex {
	display:flex;
	justify-content:center;
	align-items:baseline;
}
.comp-item.flex .comp-item-desc{
	padding-left:0.5em;
	font-size:160%;
	font-weight:bold;
}

.compliance-note {
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
	background-color:var(--bg-alt);
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	padding:12px 1rem;
	margin:0;
}

.compliance-steps {
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	row-gap:1rem;
}

.comp-step {
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	background-color:var(--bg-alt);
	padding:1rem;
}

.comp-step-head {
	font-size:1rem;
	line-height:1.5;
	font-weight:600;
	color:var(--text-heading);
	margin:0 0 4px;
}

.comp-step-desc {
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
	margin:0;
}
@media (max-width:720px){
	.comp-step-head {
		margin-bottom:0.3rem;
		font-size:1.2rem;
	}
	.comp-step-desc {
		font-size:1.05rem;
	}
}

/* =============== GROUP GRID =============== */

.group-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1.5rem;
}

.group-card .group-title {
	font-size:1.2rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 4px;
}

.group-role {
	font-size:0.9rem;
	line-height:1.5;
	font-weight:600;
	color:var(--green-main);
	margin:0 0 1rem;
}
.group-info {
	width:100%;
	list-style:none;
	padding:0;
	margin:0 auto 1rem;
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
}

.group-info li {
	margin-bottom:8px;
}

.contact-panel-points {
	margin:0.5rem 1rem 1.5rem;
}
.group-info-center {
	margin-top:1em;
	display:flex;
	justify-content:center;
}
.group-info-center .group-info li > :first-child {
	width:40%;
}
.group-info-center .group-info li > :last-child {
	width:55%;
}

@media (min-width:721px){
	.group-info-center .group-info {
		font-size:1.05rem;
	}
}
@media (max-width:720px){
	.group-card .group-title {
		font-size:1.5rem;
		margin-bottom:0.5rem;
	}
}

/* =============== CONTACT BOX =============== */

/* =============== CONTACT LAYOUT (FAQ + お問い合わせ窓口 2カラム) =============== */

.contact-layout-flex {
	display:flex;
	justify-content:space-evenly;
}
.contact-layout-flex > * {
	width:800px;
}
@media (max-width:720px){
	.contact-layout-flex > * {
		width:100%;
		padding-bottom:2rem;
	}
}
.contact-layout {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:2rem;
	align-items:stretch;
	margin-top:2rem;
}


.contact-panel-cell {
	padding:0 2rem;
}
.contact-panel-actions + h3 {
	margin-top:2rem;
}

.contact-panel-actions {
	display:flex;
	justify-content:space-evenly;
}
@media (max-width:720px){
	.contact-panel-cell {
		padding:0 0 0 0.5em;
	}
	.contact-panel-cell .section-lead {
		font-size:1.05rem;
	}
	.contact-panel-cell .contact-panel-points {
		font-size:1.05rem;
		margin:0.5rem 0.5rem 1.5rem;
	}
	.contact-panel-cell .btn-primary {
		font-size:1.05rem;
	}
	.group-info-center {
		margin-top:0.5em;
	}

}



/* FAQは2カラム用にマージンをリセット */
.faq-block {
	max-width:100%;
	margin-top:0;
	display:flex;
	flex-direction:column;
	height:100%;
}

.faq-item {
	background-color:#FFFFFF;
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	padding:1.2rem 1.5rem;
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
	width:1000px;
	max-width:100%;
	margin:0 auto 1rem;
}

.faq-q {
	position:relative;
	font-size:1.1rem;
	line-height:1.5;
	font-weight:600;
	color:var(--text-heading);
	margin:0 0 8px;
}


.faq-a {
	font-size:1.1rem;
	line-height:1.7;
	font-weight:400;
	color:var(--text-body);
	margin:0;
	padding-left:1.3em;
	text-indent:-1.1em;
}

@media (max-width:720px){
	.faq-item {
		padding:1.2rem 12px;
	}
	.faq-q {
		font-size:1rem;
	}
	.faq-a {
		font-size:1rem;
	}
}


/* 右カラムの問い合わせBOX */
.contact-box {
	max-width:100%;
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	background-color:#FFFFFF;
	padding:1.5rem;
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
	display:flex;
	flex-direction:column;
	height:100%;
}

.contact-box-title {
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 1rem;
}

.contact-box .contact-btn {
	margin-top:auto;
}

.contact-list {
	list-style:none;
	padding:0;
	margin:0 auto 1rem;
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
}

.contact-list li {
	margin-bottom:8px;
}

.contact-note {
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
	margin:0 0 1rem;
}
.contact-note-center {
	text-align:center;
}
.contact-btn {
	display:inline-block;
	width:100%;
	text-align:center;
}

/* =============== FAQ BLOCK =============== */
/* /contact.html 内のよくあるご質問用
	 例:
	 <section class="faq-block">
		 <div class="faq-item">
			 <h3 class="faq-q">Q. 地方の工事も対応できますか？</h3>
			 <p class="faq-a">A. …</p>
		 </div>
	 </section>
*/

/* =============== WORKS / 実績 CAROUSEL ===============
	 背景が案件写真で切り替わり、手前に白い案件カード、
	 横/下にサムネイル。クリックで差し替え。
	 index.html の「グループ実績」セクション用。
*/

.works-hero-wrapper {
	position:relative;
	border-radius:var(--radius-card);
	overflow:hidden;
	min-height:360px;
	color:#FFFFFF;
	display:flex;
	align-items:flex-end;
	background-color:#000;/* fallback */
	box-shadow:0 8px 1.5rem rgba(0,0,0,0.2);
}

.works-hero-bg {
	position:absolute;
	inset:0;
	background-size:cover;
	background-position:center center;
	transition:background-image 0.4s ease-in-out;
	filter:brightness(0.6) saturate(0.9);
}

.works-hero-overlay {
	position:absolute;
	inset:0;
	background:radial-gradient(
		circle at 30% 30%,
		rgba(0,0,0,0.1) 0%,
		rgba(0,0,0,0.45) 60%,
		rgba(0,0,0,0.65) 100%
	);
	mix-blend-mode:multiply;
}

.works-hero-content {
	position:relative;
	z-index:2;
	width:100%;
	padding:1.5rem;
	display:flex;
	flex-wrap:wrap;
	gap:1.5rem;
	justify-content:space-between;
	align-items:flex-start;
}

/* メインの案件カード（白い情報ボックス） */
.works-main-card {
	background-color:rgba(255,255,255,0.95);
	color:var(--text-heading);
	border-radius:var(--radius-card);
	border:1px solid var(--line-gray);
	box-shadow:0 4px 1rem rgba(0,0,0,0.15);
	max-width:480px;
	padding:1.5rem;
}

.works-main-cat {
	font-size:0.7rem;
	font-weight:600;
	line-height:1.4;
	color:#FFFFFF;
	background-color:var(--green-main);
	border-radius:4px;
	display:inline-block;
	padding:4px 8px;
	margin-bottom:12px;
}

.works-main-title {
	font-size:1.2rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 12px;
}

.works-main-meta {
	font-size:0.9rem;
	line-height:1.6;
	font-weight:400;
	color:var(--text-body);
	margin:0 0 1rem;
	padding-left:1.2em;
}

.works-main-meta li {
	margin-bottom:4px;
}

/* サムネイル群 */
.works-thumbs {
	flex:1 1 240px;
	min-width:200px;
	max-width:20rem;
	display:flex;
	flex-direction:column;
	gap:12px;
}

.works-thumbs-headline {
	font-size:0.8rem;
	font-weight:600;
	line-height:1.5;
	color:#FFFFFF;
	opacity:0.9;
}

.works-thumb-list {
	display:flex;
	flex-wrap:wrap;
	gap:12px;
}

.works-thumb {
	background-color:#FFFFFF;
	color:var(--text-heading);
	border-radius:var(--radius-card);
	border:2px solid transparent;
	box-shadow:0 2px 4px rgba(0,0,0,0.3);
	overflow:hidden;
	cursor:pointer;
	flex:0 0 calc(33.333% - 8px);
	max-width:calc(33.333% - 8px);
	position:relative;
}

.works-thumb.is-active {
	border-color:var(--green-main);
	box-shadow:0 0 0 2px var(--green-main),0 4px 1rem rgba(0,0,0,0.4);
}

.works-thumb-img {
	width:100%;
	height:64px;
	object-fit:cover;
	background-color:#CCC;
	background-size:cover;
	background-position:center;
	display:block;
}

.works-thumb-label {
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	color:var(--text-heading);
	padding:8px;
	background-color:#FFFFFF;
	min-height:48px;
}

/* カルーセル下の「さらに実績を見る」CTA */
.works-more-inline {
	text-align:right;
	margin-top:1rem;
}

.works-more-inline .btn-outline {
	border-color:#FFFFFF;
	color:#FFFFFF;
}
.works-more-inline .btn-outline:hover {
	background-color:rgba(255,255,255,0.1);
	color:#FFFFFF;
}

/* =============== WORKS SECTION DARK (TOPページの現場最前線エリア) =============== */

.works-section-dark {
	position:relative;
	overflow:hidden;
	background-color:rgba(5,7,7,0.2);
	color:#FFFFFF;
	padding-top:80px;
	padding-bottom:80px;
}

.works-bg-canvas,
.works-bg-overlay {
	position:absolute;
	inset:0;
	pointer-events:none;
	z-index:0;
}

.works-bg-canvas {
	background-image:url('assets/work1.jpg');
	background-size:cover;
	background-position:center center;
	filter:blur(28px);
	transform:scale(1.08);
	opacity:0.85;
	transition:opacity 0.6s ease;
	animation:worksBgDrift 32s ease-in-out infinite alternate;
}

@keyframes worksBgDrift {
	0% {
		transform:scale(1.05) translate3d(0,0,0);
	}
	100% {
		transform:scale(1.15) translate3d(3%,-3%,0);
	}
}

.works-bg-overlay {
	background:
		radial-gradient(circle at 20% 20%,rgba(7,180,120,0.35) 0%,rgba(0,0,0,0) 45%),
		radial-gradient(circle at 80% 80%,rgba(0,0,0,0.45) 0%,rgba(0,0,0,0) 55%),
		linear-gradient(135deg,rgba(2,10,8,0.45) 0%,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.55) 100%);
	mix-blend-mode:multiply;
	z-index:1;
}

.works-dark-inner {
	position:relative;
	z-index:2;
	background:rgba(4,8,7,0.78);
	border-radius:28px;
	padding:40px 2rem;
	border:1px solid rgba(255,255,255,0.08);
	backdrop-filter:blur(26px);
	box-shadow:0 1.5rem 60px rgba(0,0,0,0.55);
}

.works-head-row {
	display:flex;
	flex-wrap:wrap;
	align-items:flex-start;
	justify-content:space-between;
	gap:1.5rem;
	margin-bottom:2rem;
}

.works-head-left {
	flex:1 1 720px;
	min-width:280px;
	color:#FFFFFF;
}

.works-eyebrow {
	font-size:0.7rem;
	font-weight:600;
	line-height:1.4;
	letter-spacing:0.08em;
	color:var(--green-main);
	text-transform:uppercase;
	margin-bottom:12px;
}

.works-title {
	font-size:1.5rem;
	line-height:1.4;
	font-weight:700;
	color:#FFFFFF;
	margin:0 0 12px;
	letter-spacing:-0.02em;
}

.works-lead {
	font-size:1rem;
	line-height:1.7;
	color:#FFFFFF;
	opacity:0.9;
	margin:0;
}

.works-head-cta {
	flex:0 0 auto;
	min-width:180px;
	align-self:flex-start;
}

.btn-outline-light {
	background-color:transparent;
	border-radius:var(--radius-card);
	border:1px solid rgba(255,255,255,0.6);
	color:#FFFFFF;
	font-size:0.9rem;
	font-weight:600;
	line-height:1.4;
	text-decoration:none;
	padding:10px 1rem;
	display:inline-flex;
	align-items:center;
	gap:4px;
}

.btn-outline-light .arrow {
	font-size:1rem;
	line-height:1;
	color:#FFFFFF;
}

.btn-outline-light:hover {
	background-color:rgba(255,255,255,0.08);
	border-color:rgba(255,255,255,0.8);
	color:#FFFFFF;
}

/* layout:左にメイン案件 / 右に縦2カード */
.works-feature-layout {
	display:grid;
	grid-template-columns:minmax(0,2fr) minmax(260px,1fr);
	gap:1.5rem 2rem;
	align-items:flex-start;
	color:#FFFFFF;
}

/* MAIN FEATURE */
.works-feature-main {
	background-color:rgba(8,16,15,0.55);
	border:1px solid rgba(255,255,255,0.22);
	border-radius:var(--radius-card);
	box-shadow:0 12px 30px rgba(0,0,0,0.55);
	overflow:hidden;
	color:#FFFFFF;
	backdrop-filter:blur(1rem);
}

.works-feature-main-media {
	background-size:cover;
	background-position:center center;
	min-height:460px;
	border-bottom:1px solid rgba(255,255,255,0.15);
}

.works-feature-main-meta {
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	padding:1rem 1.2rem 0;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	color:#FFFFFF;
}

.works-feature-tag {
	background-color:rgba(0,0,0,0.6);
	border:1px solid rgba(255,255,255,0.4);
	border-radius:4px;
	padding:4px 8px;
	line-height:1.4;
	color:#FFFFFF;
	font-size:0.7rem;
	font-weight:600;
	letter-spacing:0.03em;
}

.works-feature-date {
	color:#FFFFFF;
	opacity:0.8;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:500;
	letter-spacing:0.03em;
}

.works-feature-main-title {
	font-size:1.2rem;
	line-height:1.5;
	font-weight:700;
	color:#FFFFFF;
	padding:12px 1.2rem 0;
	margin:0 0 12px;
}

.works-feature-main-detail {
	padding:0 1.2rem 1.2rem;
	margin:0;
	list-style:none;
	border-top:1px solid rgba(255,255,255,0.15);
	font-size:0.8rem;
	line-height:1.6;
	color:#FFFFFF;
	opacity:0.9;
}

.works-feature-main-detail li {
	margin-top:8px;
}

/* SIDE LIST */
.works-feature-side {
	display:grid;
	grid-template-columns:1fr;
	gap:1.5rem;
	min-width:0;
}

.works-side-item {
	background-color:rgba(8,16,15,0.5);
	border:1px solid rgba(255,255,255,0.2);
	border-radius:var(--radius-card);
	box-shadow:0 10px 26px rgba(0,0,0,0.5);
	overflow:hidden;
	color:#FFFFFF;
	backdrop-filter:blur(12px);
}

.works-card {
	cursor:pointer;
	transition:border-color 0.35s ease,box-shadow 0.35s ease,transform 0.35s ease;
}

.works-card:hover,
.works-card:focus-visible {
	border-color:rgba(255,255,255,0.55);
	box-shadow:0 18px 40px rgba(0,0,0,0.55);
	transform:translateY(-4px);
}

.works-card.is-active {
	border-color:rgba(34,135,90,0.8);
	box-shadow:0 1.2rem 48px rgba(0,0,0,0.6),0 0 0 1px rgba(34,135,90,0.35);
}

.works-card:focus-visible {
	outline:2px solid rgba(34,135,90,0.6);
	outline-offset:4px;
}

.works-side-media {
	background-size:cover;
	background-position:center center;
	min-height:160px;
	border-bottom:1px solid rgba(255,255,255,0.15);
}

.works-side-meta-row {
	display:flex;
	flex-wrap:wrap;
	align-items:baseline;
	gap:12px;
	padding:1rem 1.2rem 0;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	color:#FFFFFF;
}

.works-side-tag {
	background-color:rgba(0,0,0,0.6);
	border:1px solid rgba(255,255,255,0.4);
	border-radius:4px;
	padding:4px 8px;
	line-height:1.4;
	color:#FFFFFF;
	font-size:0.7rem;
	font-weight:600;
	letter-spacing:0.03em;
}

.works-side-date {
	color:#FFFFFF;
	opacity:0.8;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:500;
	letter-spacing:0.03em;
}

.works-side-text {
	padding:12px 1.2rem 1.2rem;
	color:#FFFFFF;
}

.works-side-title {
	font-size:1rem;
	line-height:1.5;
	font-weight:700;
	color:#FFFFFF;
	margin:0 0 8px;
}

.works-side-desc {
	font-size:0.8rem;
	line-height:1.6;
	color:#FFFFFF;
	opacity:0.9;
	margin:0;
}

/* =============== NEWS (お知らせ) =============== */

/*
	- HERO直下に置く想定。上下の余白がゼロにならないように“セクションとしての余白”を持たせる。
	- 見出しや本文の左端は .container と揃え、カードの中の余白で密度を整える。
*/
.news-section {
	background-color:var(--bg-white);
	padding:56px 0;/* ← ここで上下余白を確保 */
}

/* section-block を併用している場合でも、NEWSは専用値を優先 */
.news-section.section-block {
	padding-top:56px;
	padding-bottom:56px;
}

.news-card {
	background-color:#FFFFFF;
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	width:100%;
	margin:0;
	padding:28px 2rem;
	box-shadow:0 18px 40px rgba(0,0,0,0.10);
}

.news-head {
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:12px;
	padding-bottom:12px;
	margin-bottom:12px;
	border-bottom:1px solid rgba(0,0,0,0.08);
}
@media (max-width:720px){
	.news-head .section-title {
		margin-bottom:0;
	}
}

.news-head-left {
	min-width:0;
}

.news-link {
	font-size:1rem;
	line-height:1.5;
	font-weight:700;
	color:var(--green-main);
	text-decoration:none;
	border-bottom:1px solid rgba(34,135,90,0.35);
	padding-bottom:2px;
	display:inline-flex;
	align-items:center;
	gap:4px;
	white-space:nowrap;
}

.news-link:hover {
	border-bottom-color:rgba(34,135,90,0.8);
}

.news-list {
	list-style:none;
	padding:0;
	margin:0;
	display:grid;
	gap:10px;
}

.news-item {
	display:grid;
	grid-template-columns:7.5rem 1fr;
	align-items:center;
	gap:12px;
	padding-top:10px;
	border-top:1px solid rgba(0,0,0,0.06);
}

.news-item:first-child {
	border-top:none;
	padding-top:0;
}

.news-date {
	font-size:0.9rem;
	line-height:1.4;
	font-weight:700;
	color:#666;
}

.news-item-link {
	font-size:1rem;
	line-height:1.6;
	font-weight:600;
	color:var(--text-body);
	text-decoration:none;
	min-width:0;
}

.news-item-link:hover {
	color:var(--green-main);
	text-decoration:underline;
}

.news-back-btn {
	border-bottom:1px dashed;
}


/* Responsive:余白は維持しつつ、カードの密度を少し上げる */
@media (max-width:720px){
	.news-section,
	.news-section.section-block {
		padding:40px 0;
	}

	.news-card {
		padding:1.5rem 1.2rem;
		box-shadow:0 14px 30px rgba(0,0,0,0.10);
	}

	.news-card-cell {
		padding:0rem 0.5rem;
	}
	.newsCard-text-date {
		margin:0;
	}
	.newsCard-text-title {
		font-size:1.3rem;
	}
	.newsCard-text-comment {
		font-size:1.1rem;
		line-height:1.8;
	}



	.news-date {
		font-size:1rem;
	}
	.news-item-link {
		font-size:1.1rem;
	}

	.news-item {
		grid-template-columns:1fr;
		gap:4px;
	}
}


/* =============== WORKS SECTION (横幅いっぱいのタイトル帯 + 最新2件) =============== */

.works-section {
	background-color:var(--bg-white);
}

/* 上部：背景画像の帯 */
.works-hero {
	position:relative;
	background-size:cover;
	background-position:center center;
	padding:56px 0 44px;
	color:#FFFFFF;
}

.works-hero-overlay {
	position:absolute;
	inset:0;
	background:
		linear-gradient(180deg,rgba(0,0,0,0.35) 0%,rgba(0,0,0,0.45) 60%,rgba(0,0,0,0.25) 100%),
		radial-gradient(circle at 20% 25%,rgba(34,135,90,0.25) 0%,rgba(0,0,0,0) 55%);
	pointer-events:none;
}

.works-hero-inner {
	position:relative;
	z-index:1;
}

.works-hero-bar {
	width:100%;
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:1.2rem;
}

.works-hero-sub {
	font-size:0.7rem;
	line-height:1.4;
	font-weight:700;
	letter-spacing:0.10em;
	text-transform:uppercase;
	opacity:0.95;
	margin:0 0 10px;
}

.works-hero-title {
	font-size:1.7rem;;
	line-height:1.3;
	font-weight:700;
	margin:0;
	color:#FFFFFF;
	letter-spacing:-0.02em;
}

.works-hero-btn {
	flex:0 0 auto;
	background-color:var(--green-main);
	color:#FFFFFF;
	text-decoration:none;
	border-radius:var(--radius-card);
	padding:10px 1rem;
	font-size:0.9rem;
	line-height:1.4;
	font-weight:700;
	border:1px solid rgba(255,255,255,0.15);
	box-shadow:0 8px 1.2rem rgba(0,0,0,0.25);
	display:inline-flex;
	align-items:center;
	gap:4px;
}

.works-hero-btn:hover {
	background-color:#1A6E49;
}

.works-hero-lead {
	margin:18px 0 0;
	font-size:0.9rem;
	line-height:1.7;
	color:rgba(255,255,255,0.92);
	max-width:860px;
}

/* 下部：最新実績2件 */
.works-latest {
	padding-top:40px;
	padding-bottom:64px;
}

.works-latest-head {
	display:flex;
	flex-wrap:wrap;
	align-items:baseline;
	justify-content:space-between;
	gap:12px 18px;
	margin-bottom:1.2rem;
}

.works-latest-title {
	font-size:1.1rem;
	line-height:1.5;
	font-weight:700;
	color:var(--text-heading);
	margin:0;
}

.works-latest-desc {
	font-size:0.9rem;
	line-height:1.7;
	color:var(--text-body);
	margin:0;
}

.works-latest-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1.5rem;
}

.works-latest-card {
	background-color:#FFFFFF;
	border:1px solid var(--line-gray);
	border-radius:var(--radius-card);
	overflow:hidden;
	box-shadow:0 2px 4px rgba(0,0,0,0.03);
	transition:transform 0.25s ease,box-shadow 0.25s ease,border-color 0.25s ease;
}

.works-latest-card:hover,
.works-latest-card:focus-within {
	transform:translateY(-3px);
	border-color:rgba(34,135,90,0.35);
	box-shadow:0 10px 26px rgba(0,0,0,0.12);
}

.works-latest-media {
	min-height:180px;
	background-size:cover;
	background-position:center center;
	border-bottom:1px solid var(--line-gray);
	background-color:#EEF2F4;
}

.works-latest-body {
	padding:1.2rem 1.2rem 22px;
}

.works-latest-meta {
	display:flex;
	flex-wrap:wrap;
	gap:10px 12px;
	align-items:center;
	margin-bottom:12px;
}

.works-latest-tag {
	background-color:var(--green-main);
	color:#FFFFFF;
	border-radius:4px;
	padding:4px 8px;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:700;
}

.works-latest-date {
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	color:rgba(26,26,26,0.75);
}

.works-latest-card-title {
	font-size:1rem;
	line-height:1.55;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 10px;
}

.works-latest-card-desc {
	font-size:0.9rem;
	line-height:1.7;
	color:var(--text-body);
	margin:0 0 14px;
}

.works-latest-link {
	position:relative;
	font-size:0.9rem;
	padding:0 0.9rem 0.1rem;
	line-height:1.5;
	font-weight:700;
	color:var(--green-main);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	gap:4px;
	border:2px solid rgba(34,135,90,1);
	border-radius:0.3rem;
	transition:all 0.2s ease;
	z-index:1;
}
@media (min-width:721px){
	.works-latest-link:before {
		content:"";
		position:absolute;
		top:0;
		bottom:0;
		left:0;
		width:0;
		background:var(--green-main);
		z-index:-1;
		transition:all 0.2s ease;
	}

	.works-latest-link:hover {
		color:#fff;
	}
	.works-latest-link:hover:before {
		width:100%;
	}

}


/* Responsive */
@media (max-width:720px){
	.works-hero {
		padding:44px 0 34px;
	}

	.works-hero-bar {
		flex-direction:column;
		align-items:flex-start;
	}

	.works-hero-btn {
		width:100%;
		justify-content:center;
	}

	.works-latest-grid {
		grid-template-columns:1fr;
	}

	.works-latest {
		padding-top:28px;
		padding-bottom:56px;
	}

	.works-latest-link {
		font-size:1rem;
	}
}

/* =============== FOOTER =============== */
/* footer brand / structure enhancements */

.footer-col-brand {
	position:relative;
}

.footer-brandline {
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	letter-spacing:0.08em;
	text-transform:uppercase;
}

.footer-heading {
	font-size:0.9rem;
	line-height:1.4;
	font-weight:700;
	color:#FFFFFF;
	margin:0 0 12px;
}
.footer-heading.m-top {
	margin-top:4px;
}

.footer-link-inline a {
	line-height:1.5;
	font-weight:600;
	color:#FFFFFF;
	text-decoration:none;
	border-bottom:1px solid rgba(255,255,255,0.6);
	display:inline-flex;
	align-items:center;
	gap:4px;
}

.footer-link-inline a:hover {
	border-bottom-color:#FFFFFF;
}

.site-footer {
	border-top:none;
	background-color:var(--green-main);
	color:#FFFFFF;
}

.footer-inner {
	display:flex;
	gap:1.5rem 7.5rem;
	padding-top:40px;
	padding-bottom:40px;
	color:#FFFFFF;
}
@media (max-width:720px){
	.footer-inner {
		display:grid;
		gap:1.5rem;
	}
}

.footer-heading {
	font-size:0.9rem;
	line-height:1.4;
	font-weight:700;
	color:#FFFFFF;
	margin:0 0 12px;
}

.footer-info,
.footer-links {
	list-style:none;
	padding:0;
	margin:0;
	color:rgba(255,255,255,0.9);
	font-size:0.9rem;
	line-height:1.6;
}

.footer-links a {
	color:rgba(255,255,255,0.9);
	text-decoration:none;
}

.footer-links a:hover {
/*
	text-decoration:underline;
*/
	color:#FFFFFF;
}

.footer-info li,
.footer-links li {
	margin-bottom:6px;
	color:rgba(255,255,255,0.9);
}
.footer-info.no-margin {
	margin-bottom:0.5rem;
}
.footer-info.no-margin li {
	margin-bottom:0;
}
.footer-info.no-margin li:not(.footer-heading){
	line-height:1.6;
}

.footer-bottom {
	border-top:1px solid rgba(255,255,255,0.25);
	background-color:rgba(0,0,0,0.15);
	font-size:0.7rem;
	line-height:1.5;
	color:rgba(255,255,255,0.9);
}

.footer-bottom-inner {
	padding-top:1rem;
	padding-bottom:1rem;
	text-align:center;
	color:rgba(255,255,255,0.9);
}

@media (max-width:720px){
	.footer-brandline {
		font-size:0.8rem;
	}
	.footer-heading {
		font-size:1.2rem;
	}
	.footer-col-brand .footer-heading {
		font-size:1.6rem;
	}
	.footer-heading {
		font-size:1.4rem;
	}

	.footer-info,
	.footer-links {
		font-size:1.1rem;
	}
	.footer-link-inline a {
		font-size:1.2rem;
		margin-bottom:0.3rem;
	}
	.footer-bottom-inner small {
		font-size:1rem;
	}

	.footer-info.no-margin li {
		margin-top:0.1rem;
		margin-bottom:0.2rem;
	}

}


/* =============== COMPANY PAGE (MESSAGE LAYOUT) =============== */

.message-layout {
	max-width:880px;
	margin:0 auto;
}

.message-content {
	background-color:#FFFFFF;
	padding:0;
}

/* =============== NUMBERS GRID (BY THE NUMBERS) =============== */

.numbers-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:1.5rem;
}

.numbers-card {
	padding:2rem 1.5rem;
	text-align:center;
}

.numbers-card .numbers-value {
	font-size:1.5rem;
	line-height:1.3;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 12px;
}

.numbers-card .numbers-label {
	font-size:0.9rem;
	line-height:1.5;
	font-weight:600;
	color:var(--green-main);
	margin:0 0 12px;
}

.numbers-card .numbers-note {
	font-size:0.9rem;
	line-height:1.7;
	color:var(--text-body);
	margin:0;
}

/* =============== ACCESS LAYOUT =============== */

.access-layout {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1.5rem;
}

.access-info {
	padding:2rem 1.5rem;
	display:flex;
	flex-direction:column;
}
.access-info iframe {
	margin-top:auto;
}
.access-layout.single {
	display:flex;
	justify-content:center;
}
.access-layout.single > * {
	width:60%;
}
@media (max-width:720px){
	.access-layout.single > * {
		width:100%;
	}
	.access-info .text-heading-md-sm {
		font-size:1.5rem;
	}
	.access-info .text-heading-md-sm .small {
		font-size:1.25rem;
	}
}

/* =============== CONTACT PAGE (FORM PREVIEW) =============== */

.form-preview {
	width:100%;
	max-width:800px;
	margin:0 auto;
	padding:48px 2rem;
	text-align:center;
}

/* =============== RECRUIT PAGE =============== */

.recruit-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1.5rem;
}

.recruit-card {
	padding:2rem 1.5rem;
}

.recruit-tag {
	display:inline-block;
	background-color:var(--green-main);
	color:#FFFFFF;
	font-size:0.7rem;
	line-height:1.4;
	font-weight:600;
	padding:4px 12px;
	border-radius:4px;
	margin-bottom:1rem;
}

.recruit-title {
	font-size:1.2rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 1rem;
}

.recruit-desc {
	font-size:1.1rem;
	line-height:1.5;
	color:var(--text-body);
	margin:0 0 1.5rem;
}

.recruit-requirements {
	list-style:none;
	margin:0;
	border-top:1px solid var(--line-gray);
	border-bottom:1px solid var(--line-gray);
	padding:0.8rem 0.5rem;
	font-size:1rem;
	line-height:1.7;
	color:var(--text-body);
}

.recruit-requirements li {
	position:relative;
	padding-left:1.2rem;
}
.recruit-requirements li + li {
	margin-top:0.3rem;
}

.recruit-requirements li::before {
	content:"\2713";
	position:absolute;
	left:0;
	color:var(--green-main);
	font-weight:700;
}

@media (max-width:720px){
	.recruit-requirements {
		padding:0.8rem 0;
	}
}




/* =============== SERVICES PAGE (DETAIL LAYOUT) =============== */

.service-detail-layout {
	display:grid;
	grid-template-columns:360px 1fr;
	gap:2rem;
	align-items:flex-start;
}

.service-detail-visual {
	position:sticky;
	top:1.5rem;
}

.service-detail-content {
	background-color:#FFFFFF;
	padding:0;
}

.service-list {
	list-style:none;
	padding:0;
	margin:0;
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
}

.service-list li {
	position:relative;
	padding-left:1.5rem;
	margin-bottom:12px;
}

.service-list li::before {
	content:"\2713";
	position:absolute;
	left:0;
	color:var(--green-main);
	font-weight:700;
}

/* =============== TEXT UTILITIES =============== */

/* 見出し用 - 大 (1.5rem) */
.text-heading-lg {
	font-size:1.5rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 1rem;
}

/* 見出し用 - 中 (20px) */
.text-heading-md {
	font-size:1.32rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 1.5rem;
}

.text-heading-md-sm {
	font-size:1.3rem;
	line-height:1.4;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 1.5rem;
}

/* 見出し用 - 小 (18px) */
.text-heading-sm-lg {
	font-size:1.1rem;
	line-height:1.5;
	font-weight:700;
	color:var(--text-heading);
	margin:2rem 0 1rem;
}

/* 見出し用 - 小 (1rem) */
.text-heading-sm {
	font-size:1rem;
	line-height:1.5;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 1rem;
}

.text-heading-sm-tight {
	font-size:1rem;
	line-height:1.5;
	font-weight:700;
	color:var(--text-heading);
	margin:0 0 12px;
}

/* 本文用 - 標準 (1rem) */
.text-body {
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
	margin:0 0 1.5rem;
}

.text-body-last {
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
	margin:0;
}
.text-body-last .btn-primary{
	margin-top:1rem;
}

.text-body-center {
	font-size:1rem;
	line-height:1.8;
	color:var(--text-body);
	margin:1.5rem 0 0;
	text-align:center;
}

/* 本文用 - 小 (14px) */
.text-small {
	font-size:0.9rem;
	line-height:1.7;
	color:var(--text-body);
	margin:0;
}

.text-small-margin {
	font-size:0.9rem;
	line-height:1.6;
	color:var(--text-body);
	margin:0;
}

@media (max-width:720px){
	.text-heading-sm {
		font-size:1.2rem;
	}
	.text-body-center {
		font-size:1.1rem;
	}
	#apply .text-small {
		font-size:0.95rem;
	}
}

/* =============== RESPONSIVE =============== */
@media (min-width:721px){
	.sp-only {
		display:none;
	}
}
@media (max-width:720px){
	.pc-only {
		display:none;
	}

	.header-inner {
		align-items:center;
	}

	.brand::before {
		width:3px;
	}

	.global-nav {
		position:absolute;
		top:83px;
		right:0;
		background-color:rgba(255,255,255,0.9);
		border-left:3px solid var(--green-main);
		border-bottom:3px solid var(--green-main);
		border-radius:0 0 0 8px;
		box-shadow:0 4px 12px rgba(0,0,0,0.12);
		padding:2rem 2.5rem 3rem;
		min-width:70%;
		display:none;
		z-index:1000;
	}

	.global-nav.is-open {
		display:block;
		animation:slideIn 0.3s ease;
	}

	@keyframes slideIn {
		from {
			opacity:0;
			transform:translateY(-10px);
		}
		to {
			opacity:1;
			transform:translateY(0);
		}
	}

	.global-nav ul {
		flex-direction:column;
		align-items:center;
		gap:1.2rem;
		text-align:center;
	}

	.global-nav li {
		width:100%;
	}
	.global-nav a {
		display:block;
		width:100%;
		font-size:1.3rem;
	}
	.global-nav a.nav-cta {
		margin-top:1.2rem;
		font-size:1.2rem;
	}

	.nav-toggle {
		display:flex;
		align-items:center;
		justify-content:center;
	}

	.works-section-dark {
		padding-top:56px;
		padding-bottom:56px;
	}

	.works-dark-inner {
		padding:28px 1.2rem;
		border-radius:1.2rem;
	}

	.hero-inner {
		flex-direction:column;
	}

	.service-grid {
		grid-template-columns:1fr;
	}

	.works-grid {
		grid-template-columns:1fr;
	}

	.compliance-wrapper {
		grid-template-columns:1fr;
	}

	.group-grid {
		grid-template-columns:1fr;
	}

	.footer-inner {
		grid-template-columns:1fr;
	}

	.contact-layout {
		grid-template-columns:1fr;
		align-items:stretch;
	}

	.contact-box {
		order:2;
	}

	.faq-block {
		order:1;
	}

.compliance-wrapper {
	grid-template-columns:1fr;
}
	/* HERO VIDEO responsive adjustments */
	.hero-video-section {
		min-height:72vh;
		min-height:clamp(68vh,78vh,760px);
		padding-top:72px;
		padding-bottom:40px;
		align-items:flex-end;
	}

	.hero-video-content {
		flex-direction:column;
		gap:1.5rem;
	}

	.hero-copy-block {
		max-width:100%;
	}

	.hero-headline {
		font-size:1.7rem;;
		line-height:1.4;
	}

	.hero-stats-panel {
		flex:1 1 auto;
		max-width:100%;
		min-width:0;
		background-color:rgba(0,0,0,0.5);
		border:1px solid rgba(255,255,255,0.3);
		color:#FFFFFF;
	}

	.hero-stats-list {
		grid-template-columns:1fr 1fr;
		row-gap:12px;
		column-gap:1rem;
	}

	.hero-stats-item {
		border-top:none;
		padding-top:0;
	}

	.local-strength-grid {
		grid-template-columns:1fr;
	}

	.works-feature-layout {
		grid-template-columns:1fr;
	}

	.works-feature-main-media {
		min-height:200px;
	}

	.works-side-media {
		min-height:160px;
	}

	.works-head-row {
		flex-direction:column;
		align-items:flex-start;
	}

	.works-head-cta {
		width:100%;
	}

	.works-head-cta .btn-outline-light {
		width:100%;
		justify-content:center;
	}

	.numbers-block {
		flex:1 1 auto;
		max-width:100%;
		min-width:0;
		background-color:rgba(0,0,0,0.5);
		border:1px solid rgba(255,255,255,0.3);
		color:#FFFFFF;
	}

	.numbers-list {
		grid-template-columns:1fr 1fr;
		row-gap:12px;
		column-gap:1rem;
	}

	.numbers-item {
		grid-template-columns:1fr;
		row-gap:4px;
	}

	.numbers-value {
		font-size:1.2rem;
	}



	/* patterned section (監査用カード帯) のレスポンシブ */
	.section-block-pattern {
		padding-top:48px;
		padding-bottom:48px;
	}
	.pattern-surface {
		padding:2rem 1.5rem;
	}

	/* accent gray section（BUSINESS系アクセント背景）*/
	.section-block-accentgray {
		padding-top:48px;
		padding-bottom:48px;
	}
	.section-block-accentgray::before {
		width:90%;
		height:50%;
		transform:translate(-15%,-15%) skewY(-4deg);
	}
	.section-block-accentgray::after {
		width:70%;
		height:40%;
	}

	.section-block-softpattern {
		padding-top:48px;
		padding-bottom:48px;
	}
	.section-block-softpattern::before {
		width:80%;
		height:50%;
		top:-20%;
		left:-20%;
		filter:blur(50px);
	}
	.section-block-softpattern::after {
		width:70%;
		height:40%;
		right:-30%;
		bottom:-30%;
		filter:blur(70px);
	}

	/* WORKS HERO responsive */
	.works-hero-wrapper {
		border-radius:0;
		min-height:26em;
		box-shadow:0 4px 1rem rgba(0,0,0,0.3);
	}

	.works-hero-content {
		flex-direction:column;
		align-items:stretch;
	}

	.works-main-card {
		max-width:100%;
	}

	.works-thumbs {
		max-width:100%;
	}

	.works-thumb {
		flex:0 0 calc(50% - 6px);
		max-width:calc(50% - 6px);
	}

	.works-more-inline {
		text-align:left;
	}

	.numbers-grid {
		grid-template-columns:1fr;
	}

	.access-layout {
		grid-template-columns:1fr;
	}

	.service-detail-layout {
		grid-template-columns:1fr;
	}

	.service-detail-visual {
		position:static;
	}

	.recruit-grid {
		grid-template-columns:1fr;
	}
}

@media (max-width:720px){
	.hero-copy {
			flex:1 1 200px;
	}
}


.section-hero.has-bg-image::before {
	content:none;
}
.container.hero-inner {
	width:1200px;
	max-width:100%;
	text-shadow:1px 1px 0 #fff,2px 2px 0.3rem #fff;
    background:linear-gradient(90deg,#fffc,transparent);
    padding: 1rem 2rem 0.5rem;
}
.section-hero.has-bg-image .hero-title {
	color:var(--green-main);
}
.section-hero.has-bg-image .hero-desc {
	color:#000;
	opacity:1;
	font-weight:500;
}



/* ================= TOP2 (OUR APPROACH) ================= */
.section-block-accentgray.top2-bg {
	background:url(../images/top2-bg-pc.webp) 50% 50% no-repeat;
	background-size: cover;
}
.top2-header{
	padding-top:4rem;
	max-width:1100px;
	margin:0 auto;
}

.top2-eyebrow{
	font-size:0.9rem;
	letter-spacing:0.14em;
	font-weight:700;
	color:#0b6f55;
	text-transform:uppercase;
	margin-bottom:0.75rem;
}

.top2-title{
	margin:0;
	font-size:3em;
	line-height:1.4;
	font-weight:800;
	color:#0b6f55;
}
@media (max-width:720px){
	.section-block-accentgray.top2-bg {
		background-image:url(../images/top2-bg-sp.webp);
		background-position:50% 100%;
	}

	.top2-title{
		font-size:1.8rem;
	}
}
.top2-lead{
	margin:1.5rem 0 0;
	font-size:1.4rem;
	line-height:2;
	color:#4a4a4a;
	text-align:center;
}

.top2-body{
	padding-top:3rem;
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:2rem;
	align-items:start;
}

.top2-item{
	display:flex;
	flex-direction:column;
	align-items:center;
}

.top2-item img{
	width:100%;
	max-width:360px;
	height:auto;
	display:block;
}

.top2-text{
	width:100%;
	max-width:300px;
	margin-top:1.2rem;
	font-size:1.1rem;
	line-height:1.9;
	color:#2b2b2b;
	text-align:left;
}

@media (max-width:720px){
	.top2-header{
		padding-top:2.5rem;
	}
	.top2-eyebrow{
		font-size:0.7rem;
		margin-bottom:0.5rem;
	}
	.top2-lead{
		font-size:1.2rem;
		font-weight:600;
	}

	.top2-body{
		grid-template-columns:1fr;
		gap:1rem;
		padding-top:2rem;
	}

	.top2-item img {
		max-width:50%;
	}
	.top2-text{
		max-width:100%;
		padding:0 1rem;
		font-size:1.15rem;
	}
}





/* ========================= COMPANY ========================= */
.message-layout {
	max-width:1060px;
	display:flex;
}
.message-content {
	width:60%;
}
.message-image {
	width:40%;
	padding-left:30px;
}
.message-image img {
	min-height:100%;
	object-fit:cover;
}
@media (max-width:720px){
	.message-layout {
		flex-direction:column;
	}
	.message-content {
		width:100%;
		padding:0 0.5rem;
	}
	.message-content .text-body {
		line-height:1.7;
		font-size:1.15rem;
	}
	.message-content .text-small-margin {
		font-size:1.15rem;
	}
	.message-content .text-heading-md-sm {
		font-size:1.35rem;
		line-height:1.6;
	}
	.message-image {
		width:100%;
		margin:0 auto;
		padding:2rem 0 0;
	}
	.message-image img {
		aspect-ratio:2/1;
		min-height:auto;
		object-positon:50% 20%;
	}

}

/* ===== Numbers cards (BY THE NUMBERS) ===== */
.numbers-card{
	position:relative;
	overflow:hidden;
	text-align:center;
	padding:42px 0;
	display:flex;
	flex-direction:column;
	align-items:center;
}

/* Icon sits between title and KPI */
.numbers-card__icon{
	margin:0.8rem 0;
	line-height:0;
}

.numbers-card__icon img{
	height:4rem;
	width:auto;
}
.numbers-card__icon.sub img{
	height:3.5rem;
}

.numbers-card__title{
	font-size:1.4rem;
	font-weight:700;
	letter-spacing:0.02em;
	margin:0 0 8px;
}

.numbers-card__sub{
	font-size:0.9rem;
	font-weight:700;
	margin:-1em 0 0;
}

.numbers-card__kpi{
	margin:0.7rem 0;
	height:3rem;
	line-height:1;
	display:flex;
	justify-content:center;
	align-items:baseline;
}

.numbers-card__num{
	font-size:2.6rem;
	font-weight:600;
	letter-spacing:0.01em;
	color:var(--green-main);
}

.numbers-card__unit{
	line-height:1;
	font-size:1.3rem;
	font-weight:700;
	margin-left:4px;
}

.numbers-card__kpiText{
	margin:0.7rem 0;
	height:3rem;
	display:flex;
	justify-content:center;
	align-items:baseline;
	font-size:1.8rem;;
	font-weight:800;
	letter-spacing:0.02em;
	color:var(--green-main);
}

.numbers-card__note{
	margin:0;
	font-size:1rem;
	line-height:1.7;
}



@media (max-width:720px){
	.numbers-grid {
		display:flex;
		flex-wrap:wrap;
		justify-content:center;
		gap:0.3rem;
	}
	.numbers-grid > * {
		width:100%;
	}

	.numbers-card {
		padding:1.5rem 0;
	}
	.numbers-card__title {
		font-size:1.5rem;
	}
	.numbers-card__icon {
		margin-bottom:0;
	}
	.numbers-card__icon img{
		height:3.6rem;
	}
	.numbers-card__sub {
		margin-top:0;
		margin-bottom:-0.5rem;
		font-size:1rem;
	}
	.numbers-card__num{
		font-size:2.6rem;
	}
	.numbers-card__kpiText{
		font-size:1.9rem;
		line-height:1.4;
		margin-bottom:0.5rem;
	}
	.numbers-card__note {
		font-size:1.15rem;
	}

}



/* ========================= BUSINESS AREAS (services) ========================= */
.services2-intro{
	padding-top:4rem;
	max-width:1100px;
	margin:0 auto 2rem;
}

/* Match TOP2 (OUR APPROACH) scale */
.services2-eyebrow{
	font-size:1.1rem;
	letter-spacing:0.14em;
	font-weight:700;
	color:#0b6f55;
	text-transform:uppercase;
	margin-bottom:0.75rem;
}

.services2-title{
	margin:0;
	font-size:56px;
	line-height:1.15;
	font-weight:800;
	color:#0b6f55;
}
@media (max-width:720px){
	.services2-title{
		font-size:2rem;
	}
}

.services2-rows{
	width:100%;
}

.services2-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	min-height:380px;
}

.services2-row + .services2-row{
	border-top:1px solid rgba(0,0,0,0.08);
}

.services2-media{
	background-size:cover;
	background-position:70% 50%;
}

.services2-panel{
	background:rgba(255,255,255,0.92);
	padding:56px 64px;
	display:flex;
	flex-direction:column;
	justify-content:center;
	position:relative;
	overflow:hidden;
}

/* faint big English word inside image feel */
.services2-kicker{
	font-size:52px;
	font-weight:700;
	letter-spacing:0.04em;
	color:rgba(255,255,255,0.65);
	text-transform:uppercase;
	position:absolute;
	left:28px;
	top:18px;
	pointer-events:none;
	mix-blend-mode:overlay;
}

.services2-heading{
	margin:0;
	font-size:22px;
	font-weight:700;
	color:#1f1f1f;
}

.services2-rule{
	height:2px;
	width:100%;
	background:#7bbf5a;
	margin:12px 0 18px;
}

.services2-text{
	margin:0;
	line-height:1.9;
	color:#4a4a4a;
}

/* reverse (image right / text left) */
.services2-row--reverse .services2-media{ order:2;}
.services2-row--reverse .services2-panel{ order:1;}
.services2-row--reverse .services2-media{
	background-position:5% 50%;
}


@media (max-width:720px){
	.services2-intro{ padding-top:2.5rem;}
	.services2-eyebrow{ font-size:0.7rem;margin-bottom:0.5rem;}
	.services2-panel{ padding:36px 28px;}
	.services2-heading{ font-size:1.4rem;}
	.services2-kicker{ font-size:2.4rem;left:1rem;top:0.8rem;}

	.services2-row{ grid-template-columns:1fr;min-height:auto;}
	.services2-media{ height:240px;}
	.services2-row--reverse .services2-media,
	.services2-row--reverse .services2-panel{ order:initial;}
	.services2-panel{ background:rgba(255,255,255,0.96);}

	.services2-text{
		padding:0 0.5rem;
		font-size:1.15rem;
	}
}


.text-heading-sm.recruit-tag,
.text-heading-sm-lg.recruit-tag {
	color:#fff;
}
.service-detail-layout {
	display:block;
}
.service-detail-content {
	display:flex;
	flex-wrap:wrap;
	justify-content:space-around;
	align-items:flex-start;
}
.service-detail-content > h3 {
	width:30%;
	margin-top:1rem;
}
.service-detail-content > ul {
	width:50%;
	margin-top:1rem;
}

.service-header {
	display:flex;
	justify-content:center;
	gap:0;
	min-height:240px;
}


.text-heading-sm.recruit-tag,
.text-heading-sm-lg.recruit-tag {
	color:#fff;
}
.service-detail-layout {
	display:block;
}
.service-detail-content {
	display:flex;
	flex-wrap:wrap;
	justify-content:space-around;
	align-items:flex-start;
}
.service-detail-content > h3 {
	width:30%;
	margin-top:1rem;
}
.service-detail-content > ul {
	width:50%;
	margin-top:1rem;
}
.service-detail-content .text-body-last {
	text-align:center;
}


/* ===== Service hero (image + text panel) ===== */
.service-hero{
	align-items:stretch;
}

.service-hero__img{
	flex:40%;
	min-width:0;
}

.service-hero__img img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:right;
}
.section-bg-alt .service-header {
	flex-direction:row-reverse;
}
.section-bg-alt .service-hero__img img{
	object-position:left;
}

.service-hero__panel{
	flex:60%;
	min-width:0;
	background:#0b6b56;
	color:#fff;
	padding:18px 1.5rem;
	display:flex;
	flex-direction:column;
}

.service-hero__title{
	margin:0 0 12px;
	font-size:38px;
	color:#fff;
	font-weight:900;
	letter-spacing:0.02em;
	line-height:1.2;
}

.service-hero__rule{
	height:3px;
	width:100%;
	background:#7ed957;
	margin:0 0 14px;
}

.service-hero__desc{
	margin:0;
	font-size:17px;
	font-weight:700;
	line-height:1.9;
}

@media (max-width:720px){
	.service-detail-content {
		display:block;
	}
	.service-detail-content > h3.recruit-tag {
		width:100%;
		font-size:1.2rem;
	}
	.service-detail-content > ul {
		width:100%;
		margin-top:0;
		padding-left:1rem;
		padding-right:0.5rem;
		font-size:1.1rem;
	}
	.service-detail-content li {
		margin-bottom:0.8rem;
		line-height:1.5;
	}

	.service-header,
	.section-bg-alt .service-header {
		flex-direction:column;
	}
	.service-hero__panel{
		padding:15px 10px
	}
	.service-hero__title{
		font-size:30px;
	}
	.service-hero__desc{
		font-size:1.15rem;
		font-weight:700;
	}
	.service-hero__img img{
		height:auto;
	}
}


/* ================= グループ体制 ================= */
.group-link {
	width:1000px;
	max-width:80%;
	margin:auto;
}
.group-link + .group-link {
	padding-top:3rem;
}

.group-link a {
	display:block;
	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
}
.group-link a:hover { transform:scale(1.02);}
.group-link img { border-radius:1rem;}


.top2-circle {
	width:100%;
	max-width:260px;
	aspect-ratio:1/1;
	display:flex;
	justify-content:center;
	align-items:center;
	color:#fff;
	background:rgba(34,85,68,0.8);
	border-radius:50%;
}
.top2-circle span {
	font-size:1.6rem;
	font-weight:500;
}

.group-operations {
	margin-top:1.5rem;
	padding:0.8rem 0.5rem 0;
	border-top:1px solid var(--line-gray);
}
.group-operations .text-heading-sm-tight {
	margin-bottom:0.5rem;
}
.group-operations-list {
	list-style:none;
	margin:0;
	font-size:0.9rem;
	line-height:1.7;
	color:var(--text-body);
}
.group-operations-list li {
	position:relative;
	padding-left:1.2rem;
}
.group-operations-list li + li {
	margin-top:0.2rem;
}
.group-operations-list .check-icon {
	position:absolute;
	left:0;
	color:var(--green-main);
	font-weight:700;
}


@media (max-width:720px){
	.top2-circle {
		max-width:none;
		aspect-ratio:unset;
		border-radius:0.3rem;
	}

	.header-inner {
		height:80px;
		padding:0.7rem 1rem;
	}
	.brand-name {
		font-size:1.3rem;
	}
	.brand-tagline {
		font-size:0.9rem;
	}

	.section-hero.has-bg-image {
		min-height:auto;
		padding:0;
	}
	.section-hero.has-bg-image .hero-inner {
		min-height:20rem;
		padding:2rem 2rem 1.5rem;
		display:flex;
		align-items:flex-start;
		background:linear-gradient(90deg,#fffc,#fff6);
	}
	.section-hero.has-bg-image .hero-desc {
		line-height:1.6;
		font-size:1.2rem;
		font-weight:600;
	}

	.section-label,
	.section-eyebrow,
	.top2-eyebrow,
	.services2-eyebrow {
		font-size:0.9rem;
		margin-bottom:0;
		margin-left:0.1rem;
	}

	.services2-row .services2-media{
		background-position:right;
	}
	.services2-row.services2-row--reverse .services2-media{
		background-position:left;
	}


	.text-body,
	.text-body-last {
		font-size:1.1rem;
	}

	.section-title {
		font-size:1.6rem;
	}
	.section-lead {
		font-size:1.2rem;
	}
	
	.recruit-tag {
		font-size:1rem;
	}

	.group-operations .text-heading-sm-tight {
	    margin-bottom:0.5rem;
		font-size:1.2rem;
	}
	.group-operations-list {
		font-size:1.1rem;
	}
}




/* ================= 採用情報 ================= */
.recruit-card {
	padding:0;
}
.recruit-card-inner {
	padding:1.2rem;
}

.recruit-image img {
	width:100%;
	aspect-ratio:3/1;
	object-fit:cover;
}
.recruit-link {
	padding-top:12px;
	padding-right:12px;
	text-align:right;
}

.local-card {
	text-align:center;
}
.local-card-icon img {
	width:5rem;
	margin:0 auto;
}
.local-card-title {
	padding-top:1rem;
	font-size:1.3rem;
}
.local-card-text {
	padding-top:0.3rem;
}
@media (max-width:720px){
	.local-card-icon img {
		width:4rem;
	}
	.local-card-title {
		font-size:1.5rem;
	}
	.local-card-text {
		font-size:1rem;
	}
	.recruit-link {
		padding-top:1rem;
		padding-right:0;
	}

}

/* ================= 採用情報-詳細 ================= */
.form-preview {
	padding:0 1rem 0;
	text-align:left;
}
.form-preview + .form-preview {
	padding-top:3rem;
}

.recruit-tag2 {
	padding:0 0 0.5rem;
	display:flex;
	flex-wrap:wrap;
	gap:0.5rem;
}
.recruit-tag2 .recruit-tag {
	margin-bottom:0;
}
.recruit-tag2.gray {
	padding:0 1rem 0.5rem;
}
.recruit-tag2.gray .recruit-tag {
	color:#000;
	background:#cdd;
}

.recruit-images {
	padding:0 2rem;
	display:flex;
	justify-content:center;
	gap:1rem;
}
.recruit-images img {
	width:calc(100% / 3 - 1rem);
	aspect-ratio:1/1;
	object-fit:cover;
}

.text-heading-lg {
	margin-left:-0.5rem;
}

.form-preview.card {
	padding:1rem;
	display:flex;
	flex-direction:column;
}
.recruit-item {
	display:flex;
}
.recruit-item + .recruit-item {
	padding-top:1rem;
}
.recruit-item .recruit-tag {
	width:10rem;
	margin-bottom:0;
	font-size:0.9rem;
	text-align:center;
}
.recruit-item p {
	width:calc(100% - 10rem);
	padding:0 0 0 1rem;
	margin:0;
}
.recruit-item .subtext {
	display:inline-block;
	padding-left:1rem;
	font-size:85%;
}

.form-15 .field-group.flex {
	justify-content:left;
	gap:2rem;
}

@media (min-width:721px){
	.text-heading-lg + .form-preview {
		display:block !important;
	}
}
@media (max-width:720px){
	.text-heading-lg.accordion {
		padding:0.2rem 0.8rem 0.3rem;
		font-size:1.5rem;
		display:flex;
		justify-content:space-between;
		align-items:center;
		color:#fff;
		background:var(--green-main);
		border-radius:var(--radius-card);
		margin:0;
		cursor:pointer;
	}
	.text-heading-lg.accordion:after {
		content:"詳しく ▼";
		font-size:0.9rem;
		font-weight:normal;
		transition:all 0.3s ease;
		-webkit-transition:all 0.3s ease;
	}
	.text-heading-lg.accordion.open:after {
		content:"閉じる ▲";
	}
	.text-heading-lg.accordion + .form-preview {
		display:none;
	}
	.text-heading-lg.accordion.open {
		border-radius:var(--radius-card) var(--radius-card) 0 0;
	}

	.form-preview {
		padding:1rem 0;
	}
	.form-preview + .form-preview {
		padding:1rem 0;
	}
	.form-preview.card {
		width:100% !important;
		padding-left:1rem !important;
		padding-right:1rem !important;
		border-radius:0 0 var(--radius-card) var(--radius-card);
	}
	.recruit-item {
		display:block;
	}
	.recruit-item .subtext {
		font-size:1rem;
	}
	.recruit-item .recruit-tag {
		width:100%;
		font-size:1.2rem;
		border-radius:unset;
	}
	.recruit-item p {
		width:100%;
		padding:0.6rem 0.8rem 0;
		font-size:1rem;
	}

	.recruit-images {
		padding:0;
	}




}



/* ================= グループ体制 ================= */
.group-info li {
	display:flex;
	gap:0.8rem;
}
.group-info li > :first-child{
	width:7rem;
	color:var(--green-main);
	text-align:right;
}
.group-info li > :last-child{
	width:calc(100% - 8rem);
}
@media (max-width:720px){
	.group-info li > :first-child{
		width:6.5rem;
	}
	.group-info li > :last-child{
		width:calc(100% - 7rem);
	}
}


/* ================= 安全管理 ================= */
@media (max-width:720px){
	.compliance-title {
		font-size:1.2rem;
	}
	.tag-green {
		font-size:80%;
	}

	.comp-item-head {
		font-size:1.2rem;
	}
	.comp-item-desc {
		font-size:1.1rem;
	}

	.compliance-list {
		font-size:1.2rem;
	}
	.compliance-note {
		font-size:1rem;
	}

}


/* ================= お問い合わせパネル ================= */
.icon-go {
	display:flex !important;
	justify-content:center;
	align-items:center;
	padding:0.4rem 1.2rem 0.6rem;
}
.icon-go::after {
	content:"\025b6";
	margin-left:0.4rem;
	font-size:0.8rem;
}

@media (max-width:720px){
	.icon-go-flex {
		display:flex;
		justify-content:center;
		align-items:center;
	}

	.btn-primary {
		min-width:50%;
		padding:0.6rem 1.2rem 0.7rem;
		font-size:1.15rem;
	}
	.contact-panel-title {
		font-size:1.4rem;
	}
	.contact-panel-lead ,
	.contact-panel-points ,
	.contact-panel-actions .contact-btn {
		font-size:1.15rem;
	}
	.group-info {
		padding-top:0.3rem;
		font-size:1.15rem;
	}

}




/* ================= SDGs ================= */
.section-block.section-sdgs-pattern {
	position:relative;
	padding:6rem 0 8rem;
}

.section-sdgs-pattern:before ,
.section-sdgs-pattern:after {
	content:"";
	position:absolute;
	left:0;
	right:0;
	display:block;
	height:2rem;
	background:url(../images/sdgs/sdgs_bar.png) 50% 50% no-repeat;
	background-size:100% 100%;
}
.section-sdgs-pattern:before {
	top:1rem;
}
.section-sdgs-pattern:after {
	bottom:1rem;
	background-image:url(../images/sdgs/sdgs_bar_rev.png);
}

.sdgs-logo-container {
	max-width:800px;
	margin:0 auto;
	padding:0 0 3rem;
}

.sdgs-container {
}
.sdgs-para {
	max-width:1000px;
	margin:0 auto;
	padding:0 2rem 3rem;
}
.sdgs-para p {
	margin:0;
}

.sdgs-table-container {
	background:url(../images/sdgs/sdgs_bg_30.png) 50% 100% no-repeat;
}
.sdgs-table {
	min-width:80%;
	margin:0 auto;
	border-collapse:collapse;
	background:rgba(255,255,255,0.2);
	backdrop-filter:blur(0.2rem);
}
.sdgs-table th ,
.sdgs-table td {
	padding:0.5rem 1rem;
	border:1px solid #33ab8b;
}
.sdgs-table thead th {
	background:var(--bg-alt);
}

.sdgs-icons {
	display:flex;
	gap:1rem;
}
.sdgs-icons img {
	width:4rem;
}

.sdgs-table-container + .sdgs-container {
	padding-top:3rem;
}
.sdgs-container .btn-primary {
	font-size:1.1rem;
}

@media (max-width:720px){
	.section-block.section-sdgs-pattern {
		padding-bottom:6rem;
	}
	.sdgs-logo-container {
		padding:0 1rem 2rem;
	}
	.sdgs-para {
		padding-bottom:2rem;
	}
	.sdgs-para h3 {
		font-size:1.2rem;
	}
	.sdgs-para p {
		font-size:1.1rem;
	}
	.sdgs-table-container {
		background-size:auto 12rem;
	}
	.sdgs-table {
		width:100%;
	}
	.sdgs-table tbody td {
		padding:0.5rem;
	}
	.sdgs-icons {
		gap:0.5rem;
	}
	.sdgs-icons img {
		width:3.6rem;
	}
	.sdgs-table-container + .sdgs-container {
		padding-top:1rem;
	}

}


