
body {
	margin: 0;
	font-family: Arial, Helvetica, sans-serif;
	font-feature-settings: "palt";
	
}

:root {
	--hero-height: 100svh;
	--ease-in-out-sine: cubic-bezier(0.37, 0, 0.63, 1);
	--ease-in-out-cubic: cubic-bezier(0.33, 0, 0.68, 1);
	--ease-in-out-quint: cubic-bezier(0.66, 0, 0.34, 1);
}


/* --- */

.CoverSlide__Tagline img {
	max-width: 900px;
}

.Slide__Text img {
	max-width: 1250px;
	margin: auto;
}

.-snapping,
.-snapping .ScrollContainer {
	scroll-snap-type: y proximity; /* mandatory → proximity */
}

.ScrollContainer {
	position: fixed;
	inset: 0;
	overflow-y: scroll;
}

.SnapSlide {
	position: relative;
	font-family: sans-serif;
}



.SnapSlide__Spacer {
  height: var(--hero-height);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.SnapSlide__Contents {
  position: sticky;
  bottom: 0;
  height: var(--hero-height);
  margin-top: calc(-1 * var(--hero-height));
}

.SnapSlide__Slide {
	--bevel: calc( 23px );
	position: absolute;
  inset: 10px;
  visibility: hidden;
	mask-image: url( "../img/mask_001.png" );
  mask-size: 100vw 350vw;
	mask-size: 200vmax 100vmax;
  mask-repeat: no-repeat;
	mask-position: -200vmax 0;
	clip-path: polygon(var(--bevel) 0, calc(100% - var(--bevel)) 0, 100% var(--bevel), 100% 100%, 100% 100%, var(--bevel) 100%, 0 calc(100% - var(--bevel)), 0 var(--bevel));
}

.SnapSlide__Slide.-active {
  z-index: 2;
  visibility: visible;
}

.SnapSlide__Slide.-active.-forward {
  animation: XwnCSjI2yd .8s cubic-bezier(0, .5, .5, 1) both;
}

@keyframes XwnCSjI2yd {
  0% {
    mask-position: -200vmax 0;
  }
  100% {
    mask-position: 0 0;
  }
}

.SnapSlide__Slide.-active.-backward {
	mask-image: url( "../img/mask_002.png" );
	animation: Hk3mLr2sQ9 .8s cubic-bezier(0, .5, .5, 1) both;
}

@keyframes Hk3mLr2sQ9 {
	0% {
		mask-position: 100vmax 0;
	}
	100% {
		mask-position: -100vmax 0;
	}
}

.SnapSlide__Slide.-lastActive {
  z-index: 1;
  visibility: visible;
  mask: none;
	animation: none;
}

.SnapSlide__Pagination {
	position: absolute;
	z-index: 2;
	inset: 0 20px 0 auto;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 8px;
	height: fit-content;
	margin: auto 0;
	transition: opacity .5s;
}

[data-space-index="0"] .SnapSlide__Pagination {
	opacity: 0;
}

@media ( max-width: 680px ) {
	.SnapSlide__Pagination {
		inset: auto 20px 20px auto;
	}
}


.SnapSlide__Pagination div {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	/* background: #FFF; */
}

.SnapSlide__Pagination div::after {
	content: "";
	position: absolute;
	inset: 0;
	width: 2px;
	aspect-ratio: 1;
	margin: auto;
	border: 1px solid #FFF;
	border-radius: 50%;
}
[data-slide-index="0"] .SnapSlide__Pagination div:nth-child(1),
[data-slide-index="1"] .SnapSlide__Pagination div:nth-child(2),
[data-slide-index="2"] .SnapSlide__Pagination div:nth-child(3),
[data-slide-index="3"] .SnapSlide__Pagination div:nth-child(4),
[data-slide-index="4"] .SnapSlide__Pagination div:nth-child(5) {
	background: #FFF;
}

[data-slide-index="0"] .SnapSlide__Pagination div:nth-child(1)::after,
[data-slide-index="1"] .SnapSlide__Pagination div:nth-child(2)::after,
[data-slide-index="2"] .SnapSlide__Pagination div:nth-child(3)::after,
[data-slide-index="3"] .SnapSlide__Pagination div:nth-child(4)::after,
[data-slide-index="4"] .SnapSlide__Pagination div:nth-child(5)::after {
	background: #999;
}

.SnapSlide__Indicator {
	position: absolute;
	z-index: 2;
	inset: auto 0 32px;
	display: grid;
	place-items: center;
	width: 4px;
	aspect-ratio: 1;
	margin: 0 auto;
	background: #FFF;
}

@media ( max-width: 680px ) {
	.SnapSlide__Indicator {
		bottom: 20px;
	}
}

.SnapSlide__Indicator::before {
	content: '';
	position: absolute;
	width: 90px;
	aspect-ratio: 1;
	background: #FFF;
	opacity: .4;
	border-radius: 50%;
	animation: WlhFhqhyTy 2s infinite;
}

@media ( max-width: 680px ) {
	.SnapSlide__Indicator::before {
		width: 20px;
	}
}

@keyframes WlhFhqhyTy {
	0%, 100% {
		transform: scale( 1 );
	}
	50% {
		transform: scale( 1.4 );
	}
}


.SnapSlide__Indicator::after {
	content: '';
	position: absolute;
	display: block;
	width: 2px;
	height: 80px;
	background-image: linear-gradient(to bottom, transparent, transparent 50%, #fff 50%, #fff 100%);
	background-size: 100% calc(80px * 4);
	opacity: 0.5;
	animation: viHzMkLdch 2s infinite;
}

@media ( max-width: 680px ) {
	.SnapSlide__Indicator::after {
		height: 40px;
		background-size: 100% calc(40px * 4);
		animation-name: Qeph4gQUwI;
	}
}

@keyframes viHzMkLdch {
	0% {
			background-position-y: 0;
	}
	50% {
			background-position-y: calc(80px * 2);
	}

	100% {
			background-position-y: calc(80px * 4);
	}
}

@keyframes Qeph4gQUwI {
	0% {
			background-position-y: 0;
	}
	50% {
			background-position-y: calc(40px * 2);
	}

	100% {
			background-position-y: calc(40px * 4);
	}
}

/* --- */
.CoverSlide {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.CoverSlide__Image {
	position: absolute;
	z-index: -1;
	inset: 0;
	transition: transform 2s var( --ease-in-out-sine );
	transform: none;
}

[data-space-index]:not([data-space-index="0"]) .CoverSlide__Image {
	transform: translate3d( 0, 10%, 0 );
}

.CoverSlide__Image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 2s var( --ease-in-out-quint );
	scale: 1.2;
	transform: none;
}

[data-space-index]:not([data-space-index="0"]) .CoverSlide__Image img {
	transform: scale( 3 );
}

.SnapSlide__Slide:where(.-active) .CoverSlide__Image img {
	scale: 1;
	transition: transform 2s var( --ease-in-out-quint ), scale 1s ease-out;
}

.SnapSlide__Slide:where(.-lastActive) .CoverSlide__Image img {
	transition: transform 2s var( --ease-in-out-quint ), scale 0s .6s;
}

.CoverSlide__Contents {
	--cover-scale: 1.8;
	position: absolute;
	inset: 0;
	height: fit-content;
	margin: auto;
	font-weight: 700;
	font-size: calc( 16px * var( --cover-scale ) );
	text-align: center;
	color: #FFF;
	/* 半分 - 1行文（見出し文字サイズ） */
	transform: translateY( 50% ) translateY( calc( 32px * var( --cover-scale ) * -1 ) );
	transition: transform 1s var( --ease-in-out-quint ) .5s;
}

.SnapSlide__Slide:where(.-lastActive) .CoverSlide__Contents {
	opacity: 0;
	transition: opacity .3s;
}


@media ( max-width: 680px ) {
	.CoverSlide__Contents {
		font-size: calc( 14px * var( --cover-scale ) );
		text-align: left;
	}

	.CoverSlide__Contents br {
		display: block;
	}
}

[data-space-index]:not([data-space-index="0"]) .CoverSlide__Contents {
	transform: scale( calc( 1 / var( --cover-scale ) ) );
	transition-delay: 0s;
}

.CoverSlide__Tagline {
	margin: 0 0 15px 0;
	font-weight: 600;
	font-size: calc( 38px * var( --cover-scale ) );
	text-align: center;
	letter-spacing: 14px;
}

@media ( max-width: 680px ) {
	.CoverSlide__Tagline {
		font-size: calc( 14px * var( --cover-scale ) );
	}
}

.CoverSlide__Tagline .char {
	opacity: 0;
	transition: opacity .5s;
}

.SnapSlide__Slide:where(.-active) .CoverSlide__Tagline .char {
	opacity: 1;
	animation: Fs8pXcvxUU .75s var( --ease-in-out-sine ) calc( var( --char-index ) * 0.03s ) both;
}

.SnapSlide__Slide:where(.-active.-forward) .CoverSlide__Tagline .char {
	animation-delay: calc( var( --char-index ) * 0.03s + .3s );
}

.SnapSlide__Slide:where(.-lastActive) .CoverSlide__Tagline .char {
	opacity: 1;
}

@keyframes Fs8pXcvxUU {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.CoverSlide__Text {
	opacity: 0;
	line-height: 2;
	transition: opacity 1s;
	letter-spacing: 2px;
	
}

.Slide__Text {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 2px;

}


[data-space-index]:not([data-space-index="0"]) .CoverSlide__Text {
	opacity: 1;
	transition-delay: 1s;
}

.CoverSlide__Text p {
	margin: 15px 0 0 0;
	font-size: 38px !important;
}


/* --- */
.Slide {
	position: relative;
	width: 100%;
	height: 100%;
}

.Slide__Image {
	position: absolute;
	z-index: -1;
	inset: 0;
	overflow: hidden;
}

.Slide__Image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	scale: 1.2;
}

.SnapSlide__Slide:where(.-active) .Slide__Image img {
	scale: 1;
	transition: scale 1s ease-out;
}

.SnapSlide__Slide:where(.-lastActive) .Slide__Image img {
	transition: scale 0s .6s;
}

.Slide__Contents {
	position: absolute;
	inset: 0 auto 0 10%;
	height: fit-content;
	margin: auto;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.75;
	color: #FFF;
	
}

.SnapSlide__Slide:where(.-lastActive) .Slide__Contents {
	opacity: 0;
	transition: opacity .3s;
}

@media ( max-width: 680px ) {
	.Slide__Contents {
		inset: auto 32px 64px;
		font-size: 12px;
	}


}

.Slide__Tagline {
	font-size: 42px;
	font-weight: 800;
	line-height: 1.4;
	padding: 0px 0 20px 0;
	letter-spacing: 8px;
}

.Slide__Tagline .char {
	opacity: 0;
	transition: opacity .5s;
}

.SnapSlide__Slide:where(.-active) .Slide__Tagline .char {
	opacity: 1;
	animation: Fs8pXcvxUU .5s calc( var( --char-index ) * 0.03s ) both;
}

.SnapSlide__Slide:where(.-lastActive) .Slide__Tagline .char {
	opacity: 1;
}

.SnapSlide__Slide:where(.-active) .Slide__Text {
	animation: Fs8pXcvxUU .5s .75s both;
}



header nav {
	display: none;
  }
  header nav a {
	font-family: "Arial", serif;
	font-size: 12px;
	color: #8c8c8e;
	text-transform: uppercase;
	letter-spacing: 3px;
	text-decoration: none;
	margin: 0 18px;
  }
  header nav a.active, header nav a:hover {
	color: white;
  }
  @media screen and (min-width: 800px) {
	header nav {
	  display: block;
	}
  }

  header {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 115px;
	z-index: 10;
	background-position: center top;
	background-size: auto 200px;
	background-repeat: repeat-x;
  }
  header .inner {
	max-width: 1060px;
	margin: 0 auto;
	display: flex;
	height: 70px;
	align-items: center;
	justify-content: center;
	position: relative;
  }





  .box-container {
	max-width: 1600px;
	margin: 0 auto;
	
	margin: 0px auto 0 auto;
	}
	
	.box-container {
	max-width: 1600px;
	margin: 0 auto;
	
	margin: 0px auto 0 auto;
	}

	/* ボックスの基本スタイル */
	
.box {
	width: 31.1333%;
	height: auto;
	background-color: #f1f1f1;
	color: #000000;
	padding: 20px 0px 0px 0;
	text-align: left;
	font-size: 1.5rem;
	opacity: 0;
	transform: scale(0); /* 横・縦同時に縮小 */
	transform-origin: left bottom; /* 左下から拡大 */
	transition: transform 0.5s ease, opacity 0.5s ease;
	float: left;
	margin: 0 1%;
	border-radius: 20px 20px 0 0px;
	}
	
	
	
	
	
	.box_inner {
	width: 90%;
	height: auto;
	margin: auto;
	border-bottom: 2px solid #47bfff;
	background: url(../img/arr.png) no-repeat 90% 10px;
	background-size: 20px 20px;
	min-height: 130px;
	}
	
	.box_inner p {
	font-size: 12px;
	padding: 10px 0 30px 0 !important;
	}
	
	.box_title {
		min-height: 60px;
		font-weight: 600;
		font-size:18px;
		line-height: 24px;
	}
	
	
	.box:hover {
	background: #ffffff;
	color: #47bfff;
	cursor: pointer;
	border: 1px solid #e7e5e5;
	}
	
	.pc {
		display: block;
	}

	.sp {
		display: none;
	}


	/* スマホでは縦並び */
@media (max-width: 768px) {

	.CoverSlide__Tagline {
		margin: 0 0 15px 0;
		font-weight: 600;
		font-size: calc( 26px * var( --cover-scale ) ) !important;
		text-align: center;
		letter-spacing: 6px;
		line-height: 36px;
	}

	.CoverSlide__Contents {
		--cover-scale: 1.12;
		position: absolute;
		inset: 0;
		height: fit-content;
		margin: auto;
		font-weight: 700;
		font-size: calc( 16px * var( --cover-scale ) );
		text-align: center;
		color: #FFF;
		/* 半分 - 1行文（見出し文字サイズ） */
		transform: translateY( 50% ) translateY( calc( 32px * var( --cover-scale ) * -1 ) );
		transition: transform 1s var( --ease-in-out-quint ) .5s;
	}


	.Slide__Text {
		font-size: 14px !important;
		font-weight: 500;
	}



	.pc {
		display: none;
	}

	.sp {
		display: block;
	}



	.Slide__Tagline {
		font-size: 26px !important;
		font-weight: 600 !important;
		line-height: 30px;
		padding: 0px 0 20px 0;
		letter-spacing: 6px;
		margin: -0px 0 0 0 !important;
	}

	.CoverSlide__Text p {
		margin: 2em 0 0;
		font-size: 26px !important;
	}


	.philosophy_text p {
	line-height: 26px !important;
	padding: 20px 0 0 0;
	}
	
	.big {
	font-size: 22px !important;
	line-height: 34px !important;
	}
	
	.box {
	width: 95% !important; /* 画像が3つ並ぶように設定 */
	margin: 0 2.5% 5px 2.5% !important;
	}
	
	.philosophy_innder_sp {
	width: 92%;
	max-width: 1550px;
	margin: 40px auto 0 auto;
	padding: 0px 0 40px 0;
	
	background-repeat: no-repeat;
	background-size: 100%;   /* 初期少し拡大 */
	background-position:  bottom center;
	animation: bgZoom 5s ease-out forwards; /* アニメーション付与 */
	background-color: #dcdcdc;
	overflow: hidden;
	}
	
	.phi_box_inner {
	width: 32%;
	max-width: 150px;
	float: left;
	height: auto;
	margin: auto;
	background :none !important;
	background-size: 10px 10px;
	}
	
	.phi_navi_m_r {
	font-size: 16px !important;
	}
	
	.phi_box_inner_r {
	
	margin: 10px auto 0 auto !important;
	}
	
	.service_wrapper {
	
	min-height: 700px !important;
	
	}
	
	}
	
	/* アニメーション用クラス */
	.box.animate {
	opacity: 1;
	transform: scale(1); /* 左下から右上に拡大 */
	}
	
	
	.philosophy {
	width: 100%;
	max-width: 1500px;
	
	margin: 0 auto 200px auto;
	}
	
	
	
	.philosophy_innder {
	width: 98%;
	max-width: 1550px;
	margin: 40px auto 0 auto;
	padding: 0px 0 200px 0;
	background: url(../img/phi2.jpg);
	background-repeat: no-repeat;
	background-size: 100%;   /* 初期少し拡大 */
	background-position:  bottom center;
	animation: bgZoom 5s ease-out forwards; /* アニメーション付与 */
	}
	
	
	
	
	
	.philosophy_innder_com {
	width: 98%;
	max-width: 1550px;
	margin: 40px auto 0 auto;
	padding: 0px 0 40px 0;
	background-color: #47bfff;
	background-size: 100%;   /* 初期少し拡大 */
	background-position:  bottom center;
	
	animation: bgZoom 5s ease-out forwards; /* アニメーション付与 */
	}
	
	.philosophy_nav {
	width: 100%;
	
	padding: 100px 0% 20px 0%;
	}
	
	
	.philosophy_text {
	width: 90%;
	max-width: 1024px;
	padding: 20px 5% 0 5%;
	
	color: #000000;
	letter-spacing: 3px;
	}
	
	.philosophy_text p {
	
	padding: 20px 0 0 0;
	}
	
	
	.philosophy_text_com {
	width: 90%;
	max-width: 1024px;
	padding: 20px 5% 0 5%;
	
	color: #ffffff;
	letter-spacing: 3px;
	}
	
	.philosophy_text_com p {
	line-height: 36px;
	}
	
	.philosophy_text_com_inner {
	padding: 10px 0;
	width: 100%;
	border-bottom: 1px solid #fff;
	
	}
	
	.philosophy_text_com_inner img {
	max-width: 30%;
	padding: 30px 0 10px 0;
	}
	
	.diagonal-cutout-before-after {
	position: relative;
	}
	.diagonal-cutout-before-after::before {
	/* 左上の切り欠き部分 */
	content: "";
	position: absolute;
	width: 50px;
	height: 50px;
	background-color: #fff;
	left: -30px;
	top: -30px;
	transform: rotate(45deg);
	z-index: 2;
	}
	.diagonal-cutout-before-after::after {
	/* 右下の切り欠き部分 */
	content: "";
	position: absolute;
	width: 50px;
	height: 50px;
	background-color: #fff;
	right: -30px;
	bottom: -30px;
	transform: rotate(45deg);
	z-index: 2;
	}
	

	
	.phi_navi_m {
	font-weight: 600;
	font-size: 24px;
	padding: 0 0px;
	width: 96% !important;
	margin: auto;
	display: block;
	}
	.phi_box_inner {
	width: 35%;
	max-width: 150px;
	float: left;
	height: auto;
	margin: auto;
	background: url(../img/arr.png) no-repeat 90% 16px;
	background-size: 10px 10px;
	}
	
	
	.phi_box_inner_r {
	width: 60%;
	float: left;
	height: auto;
	margin: 4px auto 0 auto;
	}
	
	
	
	.phi_navi_m_r {
	font-weight: 400;
	font-size: 20px;
	}
	
	.small {
	font-size: 14px;
	font-weight: 600;
	padding: 20px 0;
	display: block;
	}
	
	.big {
	font-size: 32px;
	font-weight: 700;
	}
	
	.big2 {
	font-size: 22px;
	font-weight: 700;
	padding: 20px 0 0 0;
	}
	
	button {
	cursor: pointer;
	border: none;
	background: none !important;
	margin: 0 20px 0 0;
	}
	li {
	font-size: 23px;
	}
	
	#pending-content, #done-content {
	display: none;
	}
	
	#pending-button.active, #done-button.active{
	
	border-bottom: 2px solid #47bfff ;
	color: #47bfff;
	}
	
	#pending-content.active, #done-content.active {
	display: block;
	}
	
	
	/* table01 */
	
	#table01 {
	width: 100%;
	}
	
	#table01 tr {
	border-bottom: 1px solid #b5b1b1;
	}
	
	#table01 th,
	#table01 td {
	padding: 24px 0;
	border-bottom: 1px solid #fff;
	}
	
	#table01 th {
	width: 30%;
	text-align: left;
	padding: 0 0 0 20px;
	}
	
	#table01 td {
	width: 70%;
	}
	

	
	
	.service {
	padding: 100px 0 0 0;
	width: 98%;
	margin: auto;
	max-width: 1550px;
	}
	
	
	.service_vi {
	padding: 40px 0px 60px 0px !important;
	width: 98%;
	margin: auto !important;
	max-width: 1550px;
	border-top: 1px solid #dddddd;
	background-color: #fff;
	}
	
	.service_vi_inner {
	padding: 20px 40px 0 40px;
	}
	
	.service_wrapper {
	background: #ffffff;
	min-height: 900px;
	width: 100%;
	}
	.s_sticky {
	border-top: 1px solid #47bfff;
	font-weight: 800;
	font-size: 20px;
	width: 10vw;
	position: -webkit-sticky; /* Safariに対応する */
	position: sticky; /* 要素を固定/解除する */
	top: 200px; /* 縦方向の閾値 */
	left: 0; /* 横方向の閾値 */
	padding: 140px 0 0 0;
	}
	
	
	.service_cont {
	width: 80%;
	float: right;
	margin: -100px 0 0  0;
	}
	
	#service p {
	  font-size: 20px;
	  padding: 20px 0 0 0;
	}
	
	@keyframes bgZoom {
	0% {
	background-size: 100%;
	}
	100% {
	background-size: 145%; /* ゆっくり拡大 */
	}
	}
	
	.button_o a {
	background: #eee;
	border-radius: 3px;
	position: relative;
	display: flex;
	justify-content: space-around;
	align-items: center;
	margin: 60px 0;
	max-width: 450px;
	padding: 10px 45px;
	font-family: "Noto Sans Japanese";
	color: #333;
	line-height: 1.8;
	text-decoration: none;
	transition: 0.3s ease-in-out;
	font-weight: 500;
	border: 1px solid #b5b1b1;
	float: left;
	margin: 20px 20px 0 0;
	min-width: 360px;
	
	}
	.button_o a:hover {
	background: #47bfff;
	color: #FFF;
	cursor: pointer !important;
	}
	.button_o a:after {
	content: '';
	width: 5px;
	height: 5px;
	border-top: 3px solid #333;
	border-right: 3px solid #333;
	transform: rotate(45deg) translateY(-50%);
	position: absolute;
	top: 50%;
	right: 20px;
	border-radius: 1px;
	transition: 0.3s ease-in-out;
	}
	.button_o a:hover:after {
	border-color: #FFF;
	}
	
	
	
	@media (max-width: 768px) {


		.button_o a {
			background: #eee;
			border-radius: 3px;
			position: relative;
			display: flex;
			justify-content: space-around;
			align-items: center !important;
			text-align: center !important;
			
			padding: 10px 0px;
			font-family: "Noto Sans Japanese";
			color: #333;
			line-height: 1.8;
			text-decoration: none;
			transition: 0.3s ease-in-out;
			font-weight: 500;
			border: 1px solid #b5b1b1;
			float: none !important;
			margin: 20px auto 0 auto !important;
			max-width: 70% !important;
			
			}

		.news_block {
			width: 48% !important;
			float: left;
			padding: 0px 0;
			background: #ffffff;
			margin: 40px 1% !important;
		}


		.service_left {
			width: 100% !important;
			float: none !important;
			}
			
			.service_left p {
			  padding: 0 0 20px 0;
			}
			
			.service_right {
			width: 100% !important;
			float: none !important;
			margin: 0px 0 0 0;
			}

	
	  .s_sticky {
	
		padding: 40px 0 0 0;
		}
	  .service_vi {
		
		border-top: 1px solid #dddddd;
		background-color: #fff;
		}
	
		.bg {
		  padding: 60px 20px !important;
		}
	
	
	#home .content h1 {
	top: 40%;
	transform: translate(-50%, -50%) scale(0.85);
	padding: 0 20px;
	text-align: center;
	white-space: normal;
	}
	
	body {
	font-size: 14px;
	letter-spacing: 2px; /* ← 6pxはSPでは強すぎる */
	}
	
	h1 {
	font-size: 1.7rem !important;
	line-height: 1.3;
	}
	
	h2 {
	font-size: 24px !important;
	letter-spacing: 2px;
	}
	
	p {
	font-size: 14px;
	line-height: 1.8;
	}
	
	#about .content,
	#contact .content {
	margin: -40% 0 0 0 !important;
	padding: 0 20px !important;
	}
	
	.service_cont {
	width: 100%;
	float: none;
	margin: 0;
	}
	
	.s_sticky {
	position: static;
	width: 100%;
	margin-bottom: 20px;
	font-size: 16px;
	}
	
	.service_wrapper {
	padding: 40px 0;
	}
	
	.news_block {
		width: 48% !important;
		float: left;
		padding: 0px 0;
		background: #ffffff;
		margin: 40px 1% !important;
	}
	.content p {
	  font-size: 16px !important;
	  line-height: 32px !important;
	}
	
	}
	
	.service_left {
	width: 33%;
	float: left;
	}
	
	.service_left p {
	  padding: 0 0 20px 0;
	}
	
	.service_right {
	width: 65%;
	float: right;
	margin: 0px 0 0 0;
	}
	
	.news {
		padding: 0px 0 0 0;
		width: 98%;
		margin: auto;
		max-width: 1550px;
		}
		
	.news_block {
		width: 16%;
		float: left;
		padding: 0px 0;
		background: #ffffff;
		margin: 40px 0.3%;
	}
	
	.news_text {
		width: 90%;
		margin: 10px auto;
	}
	
	.news_big {
		font-weight: 700;
		letter-spacing:2px;
		margin: 0px 0 5px 0;
	}
	
	.news_small {
		font-size: 10px;
		color: #b5b1b1;
		letter-spacing:2px;
	}
	
	hr {
		height: 1px;
		border: 0;
		border-top: 1px solid #e5e7eb;
	  }
	  
	  address {
		font-style: normal;
	  }
	  
	  .grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.25rem;
		margin-bottom: 1.5rem;
	  }
	  
	  .footer {
		padding: 2rem;
		font-size: 15px;
		color: #4b5564;
		background: #dedede;
	  }
	  
	  .footer__navi-heading {
		font-weight: 600;
	  }
	  
	  .footer__logo {
		display: inline-block;
		margin-bottom: 1.5rem;
	  }
	  
	  .footer__navi-heading {
		margin: 0 0 10px 0;
	  }
	
	  .footer__navi li {
		margin-bottom: 10px;
		font-size: 14px;
	  }
	  
	  .footer__address {
		margin-bottom: 2rem;
	  }
	  
	  .footer__address a {
		text-decoration: underline;
	  }
	  
	  .footer ul {
		padding: 0;
		list-style: none;
	  }
	  
	  .footer a {
		color: #4b5564;
		text-decoration: none;
	  }
	  
	  .footer a:hover {
		color: #000;
	  }
	
	  .copyright {
		font-size: 12px;
	  }
	  @media (min-width: 768px) {


	
		.md-flex {
		  display: flex;
		}
	  
		.md-justify-between {
		  justify-content: space-between;
		}
	  
		.grid {
		  grid-template-columns: repeat(3, minmax(0, 1fr));
		}
		
		.footer__address a {
		  text-decoration: none;
		  pointer-events: none;
		}
	  }
	  
	  @media (min-width: 1024px) {
		.lg-flex {
		  display: flex;
		}
	  }
	
	
	
	  #nav.is-bg {
		background: rgba(0, 0, 0, 0.45); /* 好きな色に調整OK */
		backdrop-filter: blur(6px);
		transition: background 0.4s ease, backdrop-filter 0.4s ease;
		margin:  0px 0 0 0  !important;
		border-radius: 10px;
		padding: 0 0 8px 0;
	  }
	  #nav_l {
		background: rgba(0, 0, 0, 0.45); /* 好きな色に調整OK */
		backdrop-filter: blur(6px);
		transition: background 0.4s ease, backdrop-filter 0.4s ease;
		margin:  0px 0 0 0  !important;
		border-radius: 10px;
		padding: 0 0 8px 0;
	  }
	
	  #nav_low {
		background: rgba(255, 255, 255, 0.45); /* 好きな色に調整OK */
		backdrop-filter: blur(6px);
		transition: background 0.4s ease, backdrop-filter 0.4s ease;
		margin:  0px 0 0 0  !important;
		border-radius: 10px;
		padding: 0 0 8px 0;
		color: #000 !important;
	  }
	
	  #nav_low .menu { display:flex; gap:30px; }
	  #nav_low .menu a { color:#787878; text-decoration:none; font-size:1rem; transition:opacity 0.3s ease; }
	  #nav_low .menu a:hover { opacity:0.7; }
	  #nav_low  .contact-btn { border:1px solid #000000; color:#000; padding:8px 20px; text-decoration:none; font-size:0.95rem; transition:all 0.3s ease; background:#fff; }
	  #nav_low  .contact-btn:hover { background:transparent; color:#fff; background: #000 !important; }
	  #nav_low .hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background-color: transparent; padding: 6px; z-index: 101;}
	  #nav_low .hamburger span { width:24px; height:2px; background:#646464 !important; border-radius:2px; transition: all 0.3s; }
	  #nav_low .hamburger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	  #nav_low .hamburger.active span:nth-child(2) { opacity: 0; }
	  #nav_low .hamburger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	  @media (max-width: 768px) {
	   
	   
		#nav_low .hamburger { display:flex; }
	}
	
	
	  
	  .low_contents {
		width: 100%;
		max-width: 1200px;
		
		margin: 0 auto 200px auto;
		}
	
		.low_contents_inner {
		  padding: 50px 0 0 0;
		}
	
	
		.low_contents_inner ol {
		  margin: -40px 0 0 0;
		}
		.low_contents_inner li {
		margin: 0px 0 0 40px;
		  padding-left: 0em;
		  font-size: 16px;
		}
	
	
		.low_spacer {
		  margin: 20px 0 0 0;
		  height: 250px;
		  background: url(../img/line.jpg);
		  background-size: cover;
		}
	
		.low_m {
		  margin: 150px auto 0 auto;
		  max-width: 1200px;
		}
	
		.phi_navi_m_m {
		  font-weight: 800;
		  font-size: 54px;
		  }
	
		.pankuzu {
		  text-align: right;
		  max-width: 1200px;
		  margin: auto;
		  font-size: 12px;
		}
	
	
		.bg {
		  background-color: #000;
		  background-size: cover;
		  background-position: center;
		  opacity: 0;
		  transition: opacity 1.5s ease;
		}
		
	 /* bg の初期状態 */
	.bg {
	  background-color: #000; /* 既存 */
	  background-image: url("../img/bg_low.jpg"); /* 表示したい画像 */
	  background-size: cover;
	  background-position: center;
	  background-repeat: no-repeat;
	  padding: 100px;
	
	  opacity: 0;
	  transition: opacity 1.5s ease;
	}
	
	/* 表示されたらフェードイン */
	.bg.is-show {
	  opacity: 1;
	}


	nav { 
		/* bodyのpaddingを考慮したfixed配置に変更 */
		position: fixed; 
		top: 20px;       
		left: 40px;      
		width: calc(98% - 20px); 
		z-index:100; 
		transition: top 0.5s ease; 
		
	}
	
	.nav-inner { max-width:1800px; margin:0 auto; padding:10px 30px 0 0px; display:flex; justify-content:space-between; align-items:center; }
	.logo { width:100%; max-width:240px; color: #fff; font-weight: bold; font-size: 1.5rem; }
	.nav-right { display:flex; align-items:center; gap:30px; }
	.menu { display:flex; gap:30px; }
	.menu a { color:#000; text-decoration:none; font-size:1rem; transition:opacity 0.3s ease; letter-spacing: 2px; font-weight: 900; font-family: Arial, Helvetica, sans-serif; }
	.menu a:hover { opacity:0.7; }
	.contact-btn { border:1px solid #000000; color:#fff; padding:8px 20px; text-decoration:none; font-size:0.95rem; transition:all 0.3s ease; background:#000000; }
	.contact-btn:hover { background:transparent; color:#000000; }
	.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background-color: transparent; padding: 6px; z-index: 101;}
	.hamburger span { width:24px; height:2px; background:#fff; border-radius:2px; transition: all 0.3s; }
	.hamburger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.hamburger.active span:nth-child(2) { opacity: 0; }
	.hamburger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }



	.news {
		display: block;
		font-size: 12px;
		padding: 5px 0 0 0;
		}

		.news {
			padding: 0px 0 0 0;
			width: 98%;
			margin: auto;
			max-width: 1550px;
			}
			
		.news_block {
			width: 16%;
			float: left;
			padding: 0px 0;
			background: #ffffff;
			margin: 40px 0.3%;
		}
		
		.news_text {
			width: 90%;
			margin: 10px auto;
		}
		
		.news_big {
			font-weight: 700;
			letter-spacing:2px;
			margin: 0px 0 5px 0;
		}
		
		.news_small {
			font-size: 10px;
			color: #b5b1b1;
			letter-spacing:2px;
		}



		/* ハンバーガーボタン：PCでは非表示 */
.hamburger {
	display: none;
	flex-direction: column;
	justify-content: space-between;
	width: 28px;
	height: 20px;
	cursor: pointer;
	z-index: 1001;
  }
  
  .hamburger span {
	display: block;
	width: 100%;
	height: 2px;
	background: #333;
	transition: all 0.3s ease;
	transform-origin: center;
  }
  
  /* ✕ アニメーション */
  .hamburger.open span:nth-child(1) {
	transform: translateY(9px) rotate(45deg);
  }
  .hamburger.open span:nth-child(2) {
	opacity: 0;
  }
  .hamburger.open span:nth-child(3) {
	transform: translateY(-9px) rotate(-45deg);
  }
  
  /* スマホ時のメニュー */
  @media (max-width: 768px) {

	nav { 
		/* bodyのpaddingを考慮したfixed配置に変更 */
		position: fixed; 
		top: 20px;       
		left: 20px !important;      
		width: calc(100% - 20px) !important; 
		z-index:100; 
		transition: top 0.5s ease; 
		
	}

	.logo { width:100%; max-width:180px !important; color: #fff; font-weight: bold; font-size: 1.5rem; }

	.hamburger {
	  display: flex;
	}
  
	/* PCボタンを隠す */
	.contact-btn.pc {
	  display: none;
	}
  
	/* メニューをオーバーレイで表示 */
	#menu {
	  display: none;
	  flex-direction: column;
	  position: fixed;
	  top: 0;
	  left: 0;
	  width: 100%;
	  height: 100vh;
	  background: rgba(255, 255, 255, 0.97);
	  justify-content: center;
	  align-items: center;
	  gap: 2rem;
	  z-index: 1000;
	}
  
	#menu.open {
	  display: flex;
	}
  
	#menu a {
	  font-size: 1.4rem;
	  color: #333;
	  text-decoration: none;
	  letter-spacing: 0.1em;
	}
  
	#menu a:hover {
	  opacity: 0.6;
	}

	.box_title {
		min-height: 0px !important;
	  }

	  .box_inner {
		width: 98%;
		height: auto;
		margin: auto;
		border-bottom: 2px solid #47bfff;
		background: url(../img/arr.png) no-repeat 90% 10px;
		background-size: 20px 20px;
		min-height: 20px;
	
		}
		
		.box_inner p {
		font-size: 12px;
		padding: 20px 0 10px 0  !important;
		}
		
		.box_title {
			min-height: 10px;
			font-weight: 600;
			font-size:18px;
			line-height: 24px;
		}

		.box_text_i {
			padding: 0 0 0 10px;
		}
  }


.name {
	max-width: 290px;
	padding: 20px 0 0 0;

}