@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
.headLine03 {
	margin-bottom: 8rem;
}
#main p {
	margin-right: -2rem;
	margin-bottom: 3.2rem;
	line-height: 2.083;
}
#main .text {
	margin-bottom: 12.3rem;
}
#main p:last-child {
	margin-bottom: 0;
}
#main .ttl {
	margin-bottom: 6.4rem;
	font-size: 2.6rem;
	font-weight: 700;
	line-height: 1.923;
}
#main .bigPhoto {
	position: relative;
	margin: 0 -25.5rem 5.2rem 0;
}
#main .bigPhoto .txtSpan {
	display: block;
	font-size: 1.6rem;
	color: #666666;
	line-height: 1.75;
	text-align: right;
	position: absolute;
	bottom: 6rem;
	right: 64.5rem;
	letter-spacing: 0.1em;
}
#main .bigPhoto img {
	width: 100%;
}
#main .flowList {
	margin-bottom: 13.5rem;
	padding: 0.5rem 15.5rem 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 2.2rem;
}
#main .flowList li {
	min-height: 57.2rem;
	padding: 4.3rem 2rem 2rem;
	margin: 0;
	width: calc((100% - (2.2rem * 6 + 0.1rem)) / 7);
}
#main .flowList dl {
	display: block;
}
#main .flowList dt {
	width: auto;
	display: block;
	border: none;
	padding: 0;
	text-align: center;
}
#main .flowList dt .num {
	margin: 0;
}
#main .flowList dd {
	padding: 3rem 0 0;
	font-size: 2.8rem;
	display: block;
	font-weight: 700;
	letter-spacing: 0.2em;
	-webkit-writing-mode : tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: tb-rl;
	width: 3.8rem;
	margin: 0 auto;
	writing-mode: vertical-rl;
}
#main article {
	position: relative;
}
#main article .comLink {
	position: absolute;
	top: 0.7rem;
	right: 0;
}
#main .works {
	padding-bottom: 18.2rem;
}
#main .comBigPhoto {
	top: min(7.3vw,14rem);
}

#main .wrap2dan {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr); /* 左テキスト／右写真 */
  column-gap: 2rem;
  row-gap: 2rem;
  align-items: flex-start;
  margin: 0 -20rem 12rem 0;  /* ← 右に大きくはみ出させる */
}

/* 左上：テキスト */
#main .wrap2dan > p {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  margin: 0 0 2.4rem 0;       /* グローバルの margin-right:-2rem を打ち消す */
}

/* 左下：バナー２つ（横並び・小さめ） */
#main .wrap2dan > ul {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 1.6rem;
}

#main .wrap2dan > ul li {
  flex: 0 0 auto;
}

#main .wrap2dan > ul li a {
  display: block;
}

#main .wrap2dan > ul li img {
  height: 72px;          /* ← 高さ固定 */
  width: auto;           /* ← 自動で比率維持 */
  display: block;
}

/* 右：大きい建物写真 */
#main .wrap2dan .exPhoto {
  grid-column: 2 / 3;
  grid-row: 1 / 3;    /* テキスト＋バナーと同じ高さまで伸ばす */
  align-self: flex-end;
}

#main .wrap2dan .exPhoto img {
  display: block;
  width: 100%;
  height: auto;
}

@media all and (max-width: 896px) {
	.headLine02 {
		margin-bottom: 1.4rem;
	}
	.headLine03 {
		margin-bottom: 1.3rem;
	}
	#main p {
		margin: 0 0 2rem 0; 
		line-height: 1.67;
	}
	#main .ttl {
		margin-bottom: 3rem;
		font-size: 1.6rem;
		line-height: 1.75;
	}
	#main .comBigPhoto {
		top: -7.5rem;
	}
	#main .bigPhoto {
		margin: 0 0 4.5rem;
	}
	#main .bigPhoto .txtSpan {
		position: static;
		font-size: 1.2rem;
		letter-spacing: 0.1em;
		line-height: 1.75;
		margin-top: 1.4rem;
		display: block;
	}
	#main .text {
		margin-bottom: 4rem;
	}
	#main .flowList {
		margin-bottom: 5.2rem;
		padding-right: 0;
		flex-direction: column;
		gap: 1.0rem 0;
	}
	#main .flowList li {
		padding: 1.35rem 1.8rem;
		min-height: inherit;
		border-color: #CCCCCC;
		width: 100%;
	}
	#main .flowList dl {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}
	#main .flowList dt {
		width: 3.5rem;
		text-align: center;
		margin: 0 1.7rem 0 0;
	}
	#main .flowList dd {
		padding: 0;
		letter-spacing: 0.05em;
		flex: 1;
		-webkit-writing-mode: horizontal-tb;
		writing-mode: horizontal-tb;
		-moz-writing-mode: horizontal-tb;
		-ms-writing-mode: horizontal-tb;
		-o-writing-mode: horizontal-tb;
		font-size: 1.5rem;
		line-height: 1.75;
	}
	#main .flowList li:nth-child(2n) dt .num {
		color: #49783B;
	}
	#main article .comLink {
		position: static;
	}
	#main .works {
		padding-bottom: 5rem;
	}
	
	/* wrap2dan全体：縦積み・余白リセット */
	  #main .wrap2dan {
		display: block;
		margin: 0 0 4rem 0;   /* PCで付けた margin:0 -20rem… を打ち消し */
	  }

	  /* 写真ブロック */
	  #main .wrap2dan .exPhoto {
		margin: 0 0 2rem 0;
	  }
	  #main .wrap2dan .exPhoto img {
		width: 100%;
		height: auto;
		display: block;
	  }

	  /* テキスト */
	  #main .wrap2dan > p {
		margin: 0 0 2rem 0;   /* グローバルの margin-right:-2rem を上書き */
	  }

	   /* バナー：横並び＋高さ揃え */
	  #main .wrap2dan > ul {
		display: flex;
		flex-direction: row;   /* ← 横並び */
		justify-content: flex-start;
		gap: 1.2rem;
		margin: 0;
		padding: 0;
		list-style: none;
	  }

	  #main .wrap2dan > ul li {
		flex: 0 0 auto;
	  }

	  #main .wrap2dan > ul li img {
		height: 56px;   /* ← 高さ揃え（SP用に少し小さめ） */
		width: auto;    /* ← 比率維持 */
		display: block;
	  }
}