@charset "UTF-8";

*{
	box-sizeing:border-box;
	margin:0;
	padding:0;
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-weight: <weight>;
	font-style: normal;
}
ul{
	list-style:none;
}

a{
	color: #333;
	text-decoration: none;
}


/*―――― ヘッダー ――――*/
header{
	background: rgb(255,255,255);
	background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(128,234,255,1) 100%);	width:100%;
	width:100%;
	padding:0 0 10px;
	position:fixed;
	top:0;
	left:0;
	border-bottom:2px solid #777;
	z-index:91;
}

/*
横幅を決めて左右にできる余白を均等に配分する
これがmargin:0 auto;で要素を左右中心に配置する仕組みです
*/
#head-box{
	display: flex;
	width:1200px;
	margin:0 auto;
}

#header-left{
	display: flex;
	width:1000px;
	justify-content:space-between;
}

.for-img{
	display:block;
	width:250px;
}

.for-img img{
	width:100%;
}

.line{
text-align:right;
}

nav{
	width:600px;
}

nav li{
	border-bottom:3px dotted #274a78;

}

.menu{
	width:600px;
	display:flex;
	justify-content:space-between;
}

.menu__link{
	display: block;
	padding: 8px 20px;
}

.menu__link:hover{
	background-color: #ebebeb;
	color: #666;
}

.drop-menu {
	position: absolute;
	transition: all .3s;
}

.drop-menu__link {
	display: none; 
	background-color: lavender;
	padding: 5px 20px;
}

.drop-menu__link:hover {
	background-color: thistle;
}

/* ドロップダウン出現後のスタイル */
.drop-menu__link.is-active {
	display: block;
}

/* フリーダイヤル */

.tel-box{
	width:200px;
	background: rgb(132,162,212);
	background: linear-gradient(90deg, rgba(132,162,212,1) 0%, rgba(132,162,212,0.7223681709011729) 0%);
	color:#fff;
	text-align:center;
	display:flex;
	flex-direction:column;
	justify-content:center;
}

.tel-box dt{
	font-size:0.7rem;
}

.call-link {
	text-decoration: underline;
	font-size:1.3rem;
}

.call-link:hover {
	color: darkblue;
	cursor:pointer;
}

.tel-box img{
	width:25px;
	position:relative;
	top:1px;
	padding-right:5px;
}
/*―――――レスポンシブ――――――*/

@media screen and (max-width: 1200px) {

	.line{
		position:fixed;
		bottom:10px;
		right:10px;
	}

	.tel-box{
		padding:10px;
		position:fixed;
		bottom:10px;
		left:10px;
		background: rgb(132,162,212);
		background: linear-gradient(90deg, rgba(132,162,212,1) 0%, rgba(132,162,212,0.7223681709011729) 0%);
	}

/* ボタンの基本スタイル */
	#nav-btn{
		position:fixed;
		top:20px;
		right:10px;
		width:75px;
		height:40px;
		border-radius:5px;
		background:#2d596c;
		color:#fff;
		text-align:center;
		line-height:40px;
		font-size:0.8rem;
		cursor:pointer;
	}

/* 疑似要素で「メニュー」文字表示 */
	#nav-btn::before{
		content:'MENU';
	}

/* クラスclose-btnがついたら「閉じる」に上書き */
	#nav-btn.close-btn::before{
		content:'CLOSE';
	}

/* メニューリストの基本スタイルとボタンを押す前の位置 */
	.menu{
		display:block;
		height:100vh;
		position:fixed;
		z-index:90;
		top:92px;
		right:-110vw;
		width:100vw;
		background: rgb(187,200,230);
		background: linear-gradient(90deg, rgba(187,200,230,1) 0%, rgba(187,200,230,0.898838759136467) 0%);		transition:right 1s;
	}

/* ボタンを押した時に上書きされる位置 */
	.menu.btn-active{
		right:0;
	}

/* マウスホバードロップダウンを解除 */
	.drop-menu{
		position: static;
	}

	.drop-menu__link{
		display:block; 
		background: rgb(230,230,250);
		background: linear-gradient(90deg, rgba(230,230,250,1) 0%, rgba(230,230,250,0.9044410000328256) 0%);		padding: 5px 40px;
	}

}

/* -------------ページ全体の背景---------------- */

body{
background:url(../images/111634.jpg);
}

/* ――――――――メイン画像―――――――― */

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

.image-container img {
	width: 100%;
	height: auto;
}

/*―――――レスポンシブ――――――*/

@media screen and (max-width: 600px) {
#main-pic p{
	font-size:0.8rem;
	margin-left:0px;
	color:#fff;
}

#main-pic p span{
	font-size:1.3rem;
}

}

/*――――――――ページ紹介―――――――――*/

#intro{
	text-align:center;
	line-height:2;
	padding:80px 0;
}

#intro ul{
	width:1000px;
	margin:100px auto 0;
	display:flex;
	justify-content:space-between;
}

#intro li{
	width:32%;
}

#intro a{
	display:block;
	padding:50px 10px;
	border-radius:5px;
	position:relative;
}

#intro span{
	font-size:17px;
	display:block;
	color:#fff;
	width:270px;
	height:46px;
	line-height:46px;
	margin:0 auto;
	border-radius:5px;
	position:absolute;
	top:-23px;
	left:50%;
	transform:translate(-50%,0);
}
/*
上記positionの左右方向動かし方
left:50%; で親の左端から親の横幅の半分右へ
transform:translate(-50%,0); で要素自体の横幅の半分左へ
*/


#intro-A span{
background-color:#6c2d54;
}

#intro-A a{
background-color:rgba(108,45,84,0.2);
}

#intro-B span{
background-color:#2d596c;
}

#intro-B a{
background-color:rgba(45,89,108,0.2);
}

#intro-C span{
background-color:#466c2d;
}

#intro-C a{
background-color:rgba(70,108,45,0.2);
}
/*―――――レスポンシブ――――――*/


@media screen and (max-width: 1020px) {

#intro ul{
	width:80%;
	max-width:400px;
	display:block;
}

#intro li{
	width:100%;
	margin:60px 0;
}

}


/*――――――――プラン一覧――――――――*/
#plan{
	text-align:center;
	border-top:2px solid #274a78;

}

#plan h2{
	background:#274a78/*青藍*/;
	color:#fff;
	text-align:center;
	font-size:1.4rem;
	width:90%;
	font-weight:bold;
	border:4px solid #274a78/*青藍*/;
	border-radius:5px;
	padding:10px 0;
	margin:0 auto 30px;
	position:relative;
	top:-30px;
}

.area01{
	width:100%;
	background-repeat:no-repeat;
}

.inner {
	width:700px;
	margin: 20px auto;
}

.p-box{
margin-bottom: 10px;
}

.p-box .p-img {
	position: relative;
	cursor: pointer;
	color: #fff;
}

.p-box img{
	width:600px;
	padding: 5px;
	background-color: #FFFFFF;
	box-shadow: 0 3px 18px -4px rgba(0, 0, 0, 0.8);

}


.p-box .p-content {
	display: none;
	padding: 25px 15px;
	border-left: 1px solid #ccc;
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	background: #fff;
}

.a_txt {
	display: block;
	padding-left: 35px;
	position: relative;
	line-height: 1.5;
}

#plan .a_txt span{
	font-size:1.5rem;
}

/*
@media screen and (max-width: 750px) {
.inner{
width: auto;
}
.toggle_icon {
right: 0.8rem;
}
.toggle_icon:before {
width: 15px;
}
.toggle_icon:after {
height: 15px;
right: 7px;
}
}*/

#plan a{
	display:block;
	font-size:1.1rem;
	width:400px;
	font-weight:bold;
	border:4px solid #84a2d4/*青藤色*/;
	border-radius:15px;
	padding:5px;
	text-align:center;
	position:relative;
	background:#fff;
	margin:30px auto 0;
}

/*―――――レスポンシブ――――――*/

@media screen and (max-width: 1000px) {
  .area01 {
    width: 100%;
  }

  .inner {
    width: 100%; /* 幅を全幅に */
    padding: 10px; /* 余白を縮小 */
  }

  .p-box {
    width: 100%; /* 幅を全幅に */
  }

  .p-box img {
    width: 50%; /* 幅を全幅に */
    height: auto; /* 高さを自動調整 */
  }

  .p-box .p-content {
    padding: 15px; /* 余白を縮小 */
  }

  .a_txt {
    padding-left: 15px; /* 余白を縮小 */
  }

  #plan a {
    width: 80%; /* 幅を調整 */
  }
}
/*――――――――――事例紹介――――――――――*/


#past-case{
	margin-top:100px;
	text-align:center;
	border-top:2px solid #274a78;
}

#past-case h2{
	background:#274a78/*青藍*/;
	color:#fff;
	text-align:center;
	font-size:1.4rem;
	width:90%;
	font-weight:bold;
	border:4px solid #274a78/*青藍*/;
	border-radius:5px;
	padding:10px 0;
	margin:0 auto 30px;
	position:relative;
	top:-30px;
}


#past-case ul{
	max-width:1200px;
	margin:0 auto;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

#past-case li{
	flex-shrink: 0;
	width: 200px;
	height: 200px;
	padding: 5px;
	background-color: #FFFFFF;
	box-shadow: 0 3px 18px -4px rgba(0, 0, 0, 0.8);
	cursor: pointer;
	position:relative;
	z-index:90;
	transition:opacity 0.3s;
}

#past-case li p{
	flex-shrink: 0;
	font-color: #000;
	cursor: pointer;
	position:relative;
	z-index:90;
	transition:opacity 0.3s;
}


#past-case li:hover {
	opacity: 0.7;
}

#past-case img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#past-case .modal-on{
	z-index:96;
}

#past-case .modal-on img{
	display:block;
	position:fixed;
	inset:0;
	margin:auto;
	width:700px;
	height:auto;
	border:20px solid #fff;
	z-index:98;
}

#past-case .modal-on:hover {
	opacity: 1;
}

.modal-on::before{
	content:'';
	width:100vw;
	height:100vh;
	position:fixed;
	inset:0;
	z-index:97;
	background:rgba(200,200,200,0.7);
}

.modal-on::after{
	content:'×';
	display:block;
	color: #fff;
	font-size: 25px;
	font-weight: bold;
	cursor: pointer;
	width:40px;
	height:40px;
	line-height:38px;
	position:fixed;
	inset:0;
	margin:auto;
	transform:translateX(410px) translateY(-210px);
	z-index:99;
	background:rgba(60,60,60,0.9);
}

/*――――――レスポンシブ――――――*/
@media screen and (max-width: 1000px) {
  #past-case ul {
    flex-direction: column; /* 画像を縦に並べる */
  }

  #past-case li {
    width: 100%; /* 幅を全幅に */
    height: auto; /* 高さを自動調整 */
  }
}


/*――――――料金説明――――――*/
#costs{
	margin-top:300px;
	text-align:center;
	border-top:2px solid #274a78;

}

#costs h2{
	background:#274a78/*青藍*/;
	color:#fff;
	text-align:center;
	font-size:1.4rem;
	width:90%;
	font-weight:bold;
	border:4px solid #274a78/*青藍*/;
	border-radius:5px;
	padding:10px 0;
	margin:0 auto 30px;
	position:relative;
	top:-30px;
}

.inner {
	width:750px;
	margin: 20px auto;
}
.qa_box{
margin-bottom: 20px;
}
.qa_box .qa_q {
	border: 1px solid #274a78/*青藍*/;
	padding: 20px 25px;
	position: relative;
	cursor: pointer;
	color: #000;
	text-align:left;
}
.toggle_icon {
	position: absolute;
	top: 50%;
	right: 2rem;
	width: 20px;
	height: 20px;
	margin-top: -15px;
}
.toggle_icon:before{
	position: absolute;
	content: "▼";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
}

.qa_q.open .toggle_icon:before{
	position: absolute;
	content: "―";
	margin: auto;
	box-sizing: border-box;
	vertical-align: middle;
}

.qa_box .qa_a {
	display: none;
	padding: 25px 30px;
	border-left: 1px solid #ccc;
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	background: #fff;
}

h3{
	display: block;
	padding-left: 35px;
	position: relative;
	line-height: 1.5;
	font-size: 20px;
}

h3::before {
	position: absolute;
	left: 0;
	content: "◆";
	color: #000;
	font-size: 20px;
	font-weight: bold;
}

.a_txt {
	display: block;
	padding-left: 35px;
	position: relative;
	line-height: 1.5;
	text-align:left;
}

/*
@media screen and (max-width: 750px) {
.inner{
width: auto;
}
.toggle_icon {
right: 0.8rem;
}
.toggle_icon:before {
width: 15px;
}
.toggle_icon:after {
height: 15px;
right: 7px;
}
}*/
#q-a a{
	display:block;
	font-size:1.1rem;
	width:260px;
	font-weight:bold;
	border:4px solid #F15A24;
	border-radius:15px;
	padding:5px;
	text-align:center;
	position:relative;
	background:#fff;
	margin:30px auto 0;
}


/*――――――レスポンシブ――――――*/
@media screen and (max-width: 1000px) {
  .inner {
    width: 100%; /* 幅を全幅に */
    padding: 10px; /* 余白を縮小 */
  }

  .qa_box {
    width: 100%; /* 幅を全幅に */
  }

  .qa_q {
    padding: 15px; /* 余白を縮小 */
  }

  .qa_a {
    padding: 15px; /* 余白を縮小 */
  }

  h3 {
    font-size: 18px; /* フォントサイズを縮小 */
  }

  .a_txt {
    font-size: 16px; /* フォントサイズを縮小 */
  }

  #q-a a {
    width: 80%; /* 幅を調整 */
  }
}

/*――――――――フッター――――――――*/
footer{
	background-color:#274a78/*青藍*/;
	color:#fff;
	text-align:center;
}
