/* .ly_craft {
  min-height: 100vh; 
} */

.ly_craft {
  margin-block: 100px 100px;
}

.ly_craftHeading {
  padding-inline: 20px;
  position: relative;
}

.bl_craftHeadingImg {
  aspect-ratio: 4 / 1.5;
  margin-top: 40px;
  width: calc(100% + 40px);
  transform: translateX(-20px);
}

.bl_craftHeadingImg img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.ly_craftContent {
  padding-inline: 20px;
}

.bl_articleContent p {
  line-height: 2;
}

.bl_relatedLinks {
  margin-top: 100px;
  padding-inline: 20px;
}

.el_relHeading {
  font-size: 20px;
  letter-spacing: 0.01em;
  font-weight: 500;
}

.bl_relLinks {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.bl_relLinks a {
  width: 100%;
  height: 200px;
  background-size: cover;
  background-position: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff;
  position: relative;
  font-weight: 600;
  line-height: 0.01em;
  line-height: 1.8;
}

.bl_relLinks a::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 0;
}

.bl_relLinks a > * {
  z-index: 1;
}

.bl_relLinks a span {
  font-size: 15px;
}

.bl_relLinks a p {
  font-size: 24px;
}

.bl_relLinks a img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

/* toc */

#toc_container {
  margin-top: 40px;
  width: 100%;
  padding: 40px;
}

.toc_list {
  color: var(--text-primary);
  gap: 8px;
}

@media screen and (min-width: 768px) {
  .ly_craft {
    margin-block: 100px 100px;
  }
  
  .ly_craftHeading {
 	padding-top: 60px;
	padding-bottom: 60px;
 }

  .ly_craftHeading h1 {
    font-size: 40px;
    max-width: 1120px;
    margin-inline: auto;
	color: white;
  }

	.bl_craftHeadingImg {
	  aspect-ratio: 64 / 15;
	  max-width: 88vw;
	  margin-top: 0px;
	  position: absolute;   /* ← マスクの基準位置を確保 */
	  top: 0;
	  z-index: -1;           /* マスクより下げたい要素があれば適宜調整 */
	  overflow: hidden;     /* はみ出しガード（任意） */
	}

	.bl_craftHeadingImg::before {
	  content: "";
	  position: absolute;
	  inset: 0;                     /* top,right,bottom,left を全部 0 にする省略記法 */
	  background: rgba(0, 0, 0, .6);/* ← 黒マスク (60% 不透明) */
	  pointer-events: none;         /* 背後のリンクやクリックを殺さない */
	  z-index: 1;                   /* マスクレイヤー */
	}

  .bl_articleContent {
    max-width: 1200px;
    margin-inline: auto;
    margin-top: 44px;
  }

  .bl_articleContent:has(#toc_container) {
    display: grid;
    grid-template-columns: minmax(180px, 250px) minmax(400px, 880px);
    /* display: flex; */
    gap: 5.8%;
  }

  #toc_container {
    margin-top: 44px;
    border: none;
    background: transparent;
    padding: 40px 0;
    height: max-content;
    position: sticky;
    top: 80px;
  }

  .toc_list {
    font-size: 16px;
  }

  #toc_container p.toc_title {
    text-align: left;
    font-size: 20px;
  }

  .bl_relatedLinks {
    max-width: 1240px;
    margin-inline: auto;
  }

  .bl_relLinks,
  .el_relHeading {
    flex-direction: row;
    max-width: 880px;
    margin-inline: auto;
  }
}

@media screen and (min-width: 960px) {
  .ly_craft {
    margin-block: 150px;
  }
      .ly_craftHeading {
 	padding-top: 80px;
	padding-bottom: 60px;
 }
}

@media screen and (min-width: 1100px) {
    .ly_craftHeading {
 	padding-top: 120px;
	padding-bottom: 100px;
 }
}

@media screen and (min-width: 1560px) {
.bl_craftHeadingImg {
        aspect-ratio: 64 / 15;
        max-width: 1280px;
        margin-top: 0px;
        position: absolute;
        top: 0;
        z-index: -1;
        overflow: hidden;
        left: 50%;
        translate: -50% 0;
    }
}