@charset "utf-8";

/* 画像マップをレスポンシブに扱うための基本 */
.honsha img[usemap]{
  max-width:100%;
  height:auto;
  display:block;
}
map area{ cursor:pointer; }

/*===============================================
  PC（769px以上）
================================================*/
@media screen and (min-width: 769px) {
#helo {
	padding-top: 15.37vw;   /* 210px */
}




  /* セクションコンテナ */
  #equipment .honsha {
    width: 68.5212298682vw;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    margin-bottom: 1.5vw;
  }
  #equipment .fukaya {
    width: 65.151295754vw;
    margin-left: auto;
    margin-right: auto;
    position: relative;
  }
  #equipment .obusuma {
    width: 56.6965519766vw;
    margin-left: auto;
    margin-right: auto;
    position: relative;
	margin-top: -5.5vw;
	margin-bottom: 5vw;
  }

  /* 吹き出し（共通） */
  #equipment .fukidashi {
    display: inline-block;
    text-decoration: none;
    background-color: #fff;
    padding: 1.365vw;             /* 20px */
    border: 0.073vw solid #0D57A7;/* 1px */
    font-size: 1.465vw;           /* 20px */
    color: #0D57A7;
    position: absolute;
    min-width: 7.8vw;
	padding-bottom: 1.1vw;
	padding-top: 1.1vw;
  }
  #equipment .fukidashi::before {
    content: "";
    width: 0.073vw;               /* 1px */
    height: 4.392vw;              /* 60px */
    background-color: #0D57A7;
    position: absolute;
    left: 0; right: 0;
    bottom: -4.392vw;             /* -60px */
    margin-left: auto; margin-right: auto;
  }
  #equipment .fukidashi::after {
    content: "";
    width: 0.5vw;               /* 10px */
    height: 0.5vw;              /* 10px */
    background-color: #0D57A7;
    position: absolute;
    left: 0; right: 0;
    bottom: -4.392vw;             /* -60px */
    border-radius: 100px;
    margin-left: auto; margin-right: auto;
  }
  #equipment .fukidashi span {
    display: block;
    font-size: 1.098vw;           /* 15px */
    margin-top: 0.7vw;            /* 15px */
  }

  /* ───── オーバーレイ本体（共通クラス）─────
     ※ displayは触らず、opacity/visibilityでフェード制御。
     ※ これを .buil01_fig などに併用する想定。 */
  #equipment .buil_fig {
    position: absolute;  /* オーバーレイのため絶対配置 */
    z-index: 2000;       /* 画像マップより前面 */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s;
    will-change: opacity;
  }
  #equipment .buil_fig.is-show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* 表示中は画像マップのヒットを止めてリンクに奪わせる */
  #equipment .honsha.map-off img[usemap],
  #equipment .honsha.map-off map area {
    pointer-events: none !important;
  }

  /* ───── 個別配置 ───── */
  #equipment .honsha .buil01_fig {
    left: 11.8vw;
    top: 3.7vw;
    width: 21.2834553441vw;  
  }
#equipment .honsha .buil01_fig .fukidashi {
    left: 5.5vw;
    top: -4.9vw;
    z-index: 2100; 
  }
    #equipment .honsha .buil02_fig {
    left: 26.5vw;
    top: 9.6vw;
    width: 25.1371888726vw;  
  }
  #equipment .honsha .buil02_fig .fukidashi {
    left: 11vw;
    top: -3.5vw;
    z-index: 2100; 
  }
  
  
#equipment .fukaya .buil01_fig {
    left: 23.9vw;
    top: 1.83vw;
    width: 20.40vw;  
}
#equipment .fukaya .buil01_fig .fukidashi {
    left: 5.9vw;
	width: 9vw;
    top: -5.5vw;
    z-index: 2100; 
}
#equipment .fukaya .buil02_fig {
    left: 44.2vw;
    top: 9.27vw;
    width: 14.2330527086vw;
}
#equipment .fukaya .buil02_fig .fukidashi {
    left: 1.3vw;
    top: -4.2vw;
    z-index: 2100; 
}
#equipment .fukaya .buil03_fig {
    left: 21.3vw;
    top: 13.3vw;
    width: 29.2006442167vw;
	z-index: 9999;
}
#equipment .fukaya .buil03_fig .fukidashi {
    left: 5vw;
    top: 2.9vw;
    z-index: 2100; 
}
#equipment .fukaya .buil04_fig {
    left: 15.9vw;
    top: 10.3vw;
    width: 15.25vw;  
}
#equipment .fukaya .buil04_fig .fukidashi {
    left: 1vw;
    top: -7vw;
    z-index: 2100; 
}


#equipment .obusuma .buil01_fig {
    left: 9.95vw;
    top: 3.7vw;
    width: 39.7050732064vw;  
}
#equipment .obusuma .buil01_fig .fukidashi {
    left: 19vw;
    top: -0.4vw;
    z-index: 2100; 
}


  /* ───── 共通設定 ───── */
  #equipment  .buil_fig figure{
    position: static;
    width: 100%;
  }
  #equipment  .buil_fig figure img{
    display: block;
    width: 100%;
    height: auto;
	opacity: 1;
  }
  #equipment .buil_fig a{
    position: absolute;
    inset: 0;
    display: block;
    z-index: 2200;
  }
  #equipment .buil_fig.is-show figure {
    opacity: 0.4;
    filter: brightness(1.6);
  }





#description {
 	margin-bottom: -7.395vw;     /* -101px */
}
#description h2 {
 	color: #0D57A7;
	font-size: 1.757vw;          /* 24px */
	padding-top: 7.32vw;         /* 100px */
	margin-bottom: 3.66vw;       /* 50px */
}
#description .inner {
 	background-color: #CFDEEC;
	padding-bottom: 4.392vw;     /* 60px */
}
#description .flex {
 	width: 74.93vw;              /* 1024px */
	margin-left: auto;
	margin-right: auto;
	display: flex;
	justify-content: space-between;
	margin-bottom: 5.857vw;      /* 80px */
}
#description .flex div:first-child {
  	width: 47.15vw;             /* 644px */
	text-align: left;
}
#description .flex div:first-child h3 {
	font-size: 1.465vw;          /* 20px */
	margin-bottom: 1.465vw;      /* 20px */
}
#description .flex div+div {
	width: 24.88vw;              /* 340px */
	margin-top: 2.929vw;         /* 40px */
}
#description .flex div+div.none {
	margin-top: 0;
}
#description .flex div+div p {
	text-align: left;
	font-size: 1.098vw;          /* 15px */
	line-height: 2em;
	margin-top: 2.197vw;         /* 30px */
}
#description .flex+h3 {
	font-size: 1.465vw;          /* 20px */
	margin-bottom: 1.465vw;      /* 20px */
	text-align: left;
	width: 74.93vw;              /* 1024px */
	margin-left: auto;
	margin-right: auto;
}
#description table {
	width: 74.93vw;              /* 1024px */
	margin-left: auto;
	margin-right: auto;
	border-top: 0.073vw solid #000; /* 1px */
	border-left: 0.073vw solid #000; /* 1px */
	margin-bottom: 5.857vw;      /* 80px */
}
#description table tr:nth-child(odd) td {
	background-color: #F2F2F2;
}
#description table th {
	background-color: #0D57A7;
	color: #fff;
	height: 4.026vw;             /* 55px */
	line-height: 4.026vw;        /* 55px */
	border-bottom: 0.073vw solid #000; /* 1px */
	border-right: 0.073vw solid #000; /* 1px */
}
#description table th:nth-of-type(1) {
	width: 18.3vw;               /* 250px */
}
#description table th:nth-of-type(4) {
	width: 27.09vw;              /* 370px */
}
#description table td {
	background-color: #fff;
	border-bottom: 0.073vw solid #000; /* 1px */
	border-right: 0.073vw solid #000;  /* 1px */
	padding-top: 1.098vw;        /* 15px */
	padding-bottom: 1.098vw;     /* 15px */
}
#description .flex2 {
	width: 74.93vw;              /* 1024px */
	margin-left: auto;
	margin-right: auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
#description .flex2 li {
	width: 23.28vw;              /* 318px */
	text-align: left;
	margin-bottom: 2.929vw;      /* 40px */
}
#description .flex2 li figcaption {
	font-size: 1.098vw;          /* 15px */
	margin-top: 0.732vw;         /* 10px */
}
#description .flex2.mb {
 	margin-bottom: 4.392vw;      /* 60px */
}

}

/*===============================================
  SP・タブレット（～768px）
================================================*/
@media screen and (max-width:768px){
#helo {
	padding-top: 30vw;
}
 #helo h1 span {
 	font-size: 13vw;
 }





#description {
 	margin-bottom: -20vw;
	margin-top: 10vw;
 }
 #description h2 {
 	color: #0D57A7;
	font-size: 6vw;
	padding-top: 15vw;
	margin-bottom: 8vw;
 }
 #description .inner {
 	background-color: #CFDEEC;
	padding-bottom: 10vw;
 }
 #description .flex {
	margin-left: 5vw;
	margin-right: 5vw;
	margin-bottom: 10vw;
 }
  #description .flex div:first-child {
	text-align: left;
  }
    #description .flex div:first-child h3 {
		font-size: 5vw;
		margin-bottom: 3vw;
	}
#description .flex div+div {
	margin-top: 5vw;
}
#description .flex div+div.none {
	margin-top: 0px;
}
#description .flex div+div p {
	text-align: left;
	line-height: 2em;
	margin-top: 3vw;
}
#description .flex+h3 {
	font-size: 5vw;
	margin-bottom: 3vw;
	text-align: left;
	margin-left: 5vw;
	margin-right: auto;
}
.js-scrollable {
	width: 90%;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 5vw;
}
#description table {
	width: 1024px;
	margin-left: auto;
	margin-right: auto;
	border-top: 1px solid #000;
	border-left: 1px solid #000;
}
#description table tr:nth-child(odd) td {
	background-color: #F2F2F2;
}
#description table th {
	background-color: #0D57A7;
	color: #fff;
	height: 10vw;
	line-height: 10vw;
	border-bottom: 1px solid #000;
	border-right: 1px solid #000;
}
#description table td {
	background-color: #fff;
	border-bottom: 1px solid #000;
	border-right: 1px solid #000;
	padding-top: 3vw;
	padding-bottom: 3vw;
}
#description .flex2 {
	margin-left: 5vw;
	margin-right: 5vw;
	margin-top: 10vw;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
#description .flex2 li {
	text-align: left;
	margin-bottom: 5vw;
	width: 48%;
}
#description .flex2 li figcaption {
	font-size: 3.5vw;
	margin-top: 1vw;
}
 #description .flex2.mb {
 	margin-bottom: 10vw;
 }
}
