/* 右下ラベル（常に画像の右下から 5px 内側） */
.GwFirefly2 {
  position: absolute;
  right: calc(5px + 0.6vw);
	bottom: calc(5px -0.7vw); 

  /* もし clip-path の斜めカットで右下が削れて見えづらい場合は、少し内側へ：
     right: calc(5px + 0.5vw);
     bottom: calc(5px + 0.7vw); */

  color: #000000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(6px, 0.8vw, 8px); /* レスポンシブで過不足なく */
  padding: 0px 0px;                      /* 任意 */
 

  z-index: 10;                           /* 他要素に隠れないよう前面へ */
  pointer-events: none;                  /* クリック干渉を避けたい場合（任意） */
}

.h1s{
	font-size: 2.8vw;
}

.shoulderM5{
	font-size: 1.2vw;
	font-weight: bold;
	line-height:120%;
	text-align: center;
	 color: #0070b8;
}
.shoulderM4{
	font-size: 2.5vw;
	font-weight: bold;
	line-height:120%;
	text-align: center;
	margin: 2%;
	padding: 0 0 20px 0;
	 color: #0070b8;
	border-width: 0 0 1px 0;
	border-style: solid;
	border-color: #43a047;
}

.fadein {
    opacity: 0;
    transform: translate(0,0);
    transition: all 1.5s;
  &.fadein-left{
      transform: translate(-30px,0);
  }
  &.fadein-right{
      transform: translate(30px,0);
  }
  &.fadein-up{
      transform: translate(0,-30px);
  }
  &.fadein-bottom{
      transform: translate(0,30px);
  }
  &.scrollin{
    opacity: 1 !important;
    transform: translate(0, 0) !important;
  }
}

.videoSq{
	max-height: 450px;
	max-width: 100%;
	margin: 0%;
	border-radius: 15px;
}

.videoY{
	margin: 25px  auto 0;
	width: 80%;
	max-height: 90%;
	min-width: 230px;
	border-radius: 15px;
}


h4{
	font-size: 18px;
	font-weight: bold;
}

.bodybold{
	font-weight: 700;
}

.bodyImage{
	height: 100%;
	max-width: 700px;
	padding: 1vw;
}

.targets {
  display: grid;
  grid-gap: 0.2rem;
  grid-template-columns: repeat(2, 1fr);
}

.mainImage1 {/*隕ｪdiv*/
  position: relative;/*逶ｸ蟇ｾ驟咲ｽｮ*/
  }

img.mainImage1 {
	filter: brightness(0.4);
	clip-path: polygon(0% 95%, 5% 5%, 95% 0%, 100% 100%);
}

.mainImage1 p {
	position: absolute;
	color:white;
	top:35%;
	left:50%;
	-ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  width: 70vw;
 font-weight:bold;
	text-shadow: 1px 2px 3px #2A2A2A;
	font-size: 1vw;
	font-family: 'Noto Sans JP', sans-serif;
	text-align: center;
}

.mainImage1 .text .headline{
	font-size: 1.5vw;
	font-family: 'Noto Sans JP', sans-serif;
	z-index: 1;
}

.mainImage1 .text .headlineBig{
	font-size: 2.5vw;
	font-family: 'Noto Sans JP', sans-serif;
	z-index: 1;
	line-height: 180%;
	margin: 60px 0;
}






/* 親を絶対配置の基準枠にする */
.mainImage2 {
  position: relative;
}

/* 画像の表示（レスポンシブ＆既存の見た目） */
.mainImage2_img {
  display: block;               /* インライン隙間防止 */
  width: 100%;
  height: auto;
  filter: brightness(0.4);
  clip-path: polygon(0% 98%, 4% 4%, 98% 0%, 100% 100%);
}

/* 右下ラベル（常に画像の右下から 5px 内側） */
.GwFirefly {
  position: absolute;
  right: calc(5px + 0.6vw);
	bottom: calc(5px + 0.8vw); 

  /* もし clip-path の斜めカットで右下が削れて見えづらい場合は、少し内側へ：
     right: calc(5px + 0.5vw);
     bottom: calc(5px + 0.7vw); */

  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  text-shadow: 1px 2px 3px rgba(42,42,42,0.8);
  font-size: clamp(6px, 0.8vw, 8px); /* レスポンシブで過不足なく */
  background: rgba(0,0,0,0.25);         /* 視認性向上（任意） */
  padding: 0px 0px;                      /* 任意 */
  border-radius: 4px;                    /* 任意 */

  z-index: 10;                           /* 他要素に隠れないよう前面へ */
  pointer-events: none;                  /* クリック干渉を避けたい場合（任意） */
}

/* 既存の中央見出しはそのまま（必要に応じて z-index 調整） */
.mainImage2 p {
  position: absolute;
  display: block;
  color: white;
  top: 15vw;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80vw;
  max-width: 70%;
  font-weight: bold;
  text-shadow: 1px 2px 3px #2A2A2A;
  font-size: 1.5vw;
  font-family: 'Noto Sans JP', sans-serif;
  text-align: center;
}



.mainImage2 .text .headline {
  font-family: 'Noto Sans JP', sans-serif;
  z-index: 1;
}

.mainImage2 .text .headlineBig {
  font-family: 'Noto Sans JP', sans-serif;
  z-index: 1;
  line-height: 180%;
	margin: 50px 0;
}

.shoulderM {
  font-size: 1.5vw;
  line-height: 110%;
}

.shoulderS{
	font-size: 2vw;
	line-height:140%;
	text-align: center;
}

.center{
	text-align: center;
}

.filter{
	  background-color: rgba(14,0,73,0.60);
    height: 400px;
}

.bodyText{
color:black;
}

body {
	font-size: 17px;
	font-family: 'Noto Sans JP', sans-serif;
}

h1{
	text-align: center;
	margin: 4%;
	font-size: 3.6vw;
	line-height: 140%;
	background: linear-gradient(90deg, #2564DD, #4A56F0 50%, #D362FF);
  background: -webkit-linear-gradient(0deg, #25D6DD, #4A56F0 50%, #FF62AD);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

h2{
	margin-bottom: 2%;
	font-size: 24px;
	line-height: 180%;
}

h3{
	color: rgba(0,168,176,1.00);}



/* 左側グラデーションボーダー */
.block1{
  border-left: 10px solid transparent;
  border-image: linear-gradient(to bottom, rgba(0,112,184,1), rgba(80,158,47,0.5)) 1;

  max-width: 70vw;
  margin: 8% auto 10%;
  padding-left: 6%;
  padding-right: 6%;
  font-size: 16px;
  line-height: 1.8;
}

/* 画像エリアを中央寄せ（横方向） */
.block2{
  display: flex;
  justify-content: center; /* 横方向中央 */
  /* align-items: center;   必要なら縦方向も中央（高さがある場合） */
  position: relative;
  max-width: 100%;
}

/* 画像とバッジの相対配置用ラッパー */
.block2 .imgWrap{
  position: relative;      /* バッジの absolute 基準 */
  display: inline-block;   /* コンテンツ幅に合わせる */
  max-width: 100%;         /* 親を超えない */
}

/* 画像：引き延ばし防止＋小さい画面では縮む */
.block2 .imgWrap > img{
  display: block;
  width: auto;             /* 原則、自然幅 */
  max-width: 100%;         /* 画面が狭い時のみ縮む */
  height: auto;            /* 縦横比維持 */
  /* 任意：上限幅（実画像に合わせて調整）
     max-width: 960px; */
}

/* バッジ：画像の右下固定 */
.block2 .imgWrap > .GwFirefly{
  position: absolute;
  right: 5px;
  bottom: 5px;

  color: #fff;
  font-family: 'Noto Sans JP', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans";
  text-shadow: 1px 2px 3px rgba(42,42,42,0.8);
  font-size: clamp(6px, 0.8vw, 8px);
  background: rgba(0,0,0,0.25);
  padding: 4px 6px;
  border-radius: 4px;
  z-index: 10;
  pointer-events: none;
}


.block1s{
	border-left : 10px dotted ;
	border-image: linear-gradient(to bottom, rgba(0,112,184,1), rgba(80,158,47,0.5));
  border-image-slice: 1;
	max-width: 70vw;
	margin: 0 auto;
	margin-bottom: 10%;
	margin-top: 8%;
	padding-left: 6%;
	padding-right: 6%;
	font-size: 10px;
	line-height: 180%
}

.prettifydiv {
  font-size: 12px;
}

ol{color: rgba(0,136,179,1.00);
}

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

.block1 img {
  display: block;
  max-height: 500px;
	margin: auto;
	margin-top: 5%;
}

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

.blockLink{
	    position: relative;
	background-image:linear-gradient(to bottom, rgba(0,112,184,1), rgba(80,158,47,0.5));
    background-size: cover;
    width: 45vw;
	height: 60px;
	text-align: center;
	margin: auto;
	margin-top: 5%;
	margin-bottom: 5%;
	padding-top: 30px;
	color: white;
	font-size: 20px;
}

.otoiawase{
	border : 10px dotted ;
	border-image: linear-gradient(to bottom, rgba(0,112,184,1), rgba(80,158,47,0.5));
  border-image-slice: 1;
	max-width: 60vw;
	margin: auto;
	margin-bottom: 10%;
	margin-top: 10%;
	padding-left: 6%;
	padding-right: 6%;
	font-size: 16px;
	line-height: 180%;
	text-align: center;
	padding: 3%;
}
 
.container {
  max-width: 1400px;
  margin: 0 auto;
}

footer{
	background-color:  gray;
	padding: 2%;
	margin: 2% 0% 4% 0%;
	line-height: 250%;
	font-size: 1.2vw;
	font-weight: bold;
	color:white;
	text-align: center;
}

.shoulderM3{
	font-size: 2vw;
	font-weight: bold;
	line-height:120%;
	text-align: center;
	margin: 2%;
	 color: #0070b8;
}

footer .shoulderM3{
	font-size: 1.5vw;
	font-weight: bold;
	line-height:70%;
	text-align: center;
	margin: 2%;
	 color: white;
}

.linkLeft{
	text-align: left;
	margin: auto;
}

.center{
	text-align: center;
	margin: auto;
}

.imageLink{
	    position: relative;
    background-size: cover;
	 width: 60vw;
	max-width: 500px;
	text-align: left;
	color: white;
	font-size: 20px;
}

.videoimage1{
	position: absolute;
	top:35%;
	left:50%;
	-ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  width: 70vw;
	text-align: center;
}

.videoimage2{
	position: absolute;
	top:20vw;
	left:50%;
	-ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  width: 60vw;
	max-width: 50%;
	text-align: center;
}

/* 繝｡繝�ぅ繧｢繧ｯ繧ｨ繝ｪ */
@media screen and (max-width: 20000px) {
  .targets {
    grid-template-columns: repeat(3, 1fr);
  }
	.mainImage1 {
	 display: none;
}
	
	.mainImage2 {
	 display: block;
 }
 	.videoimage1{
		display: none;
	}
	.videoimage2{
		display:block;
	}

}
 
@media screen and (max-width: 650px) {
  html {
    font-size: 14px;
  }
  .targets {
    grid-template-columns: repeat(2, 1fr);
  }
	.mainImage1{
	 display:  block;
}
		.mainImage2{
	 display: none;
}
	.videoimage1{
		display: block;
	}
	.videoimage2{
		display: none;
	}

	
}