:root{
  /* text / border */
  --btn-text: #2b2b2b;
  --btn-border: rgba(0,0,0,.10);

  /* shadows */
  --btn-shadow: 0 8px 18px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.06);
  --btn-shadow-hover: 0 14px 30px rgba(0,0,0,.12), 0 3px 10px rgba(0,0,0,.08);

  /* button gradients (match header / logo: warm orange + soft purple accents) */
  --btn-detail-bg: linear-gradient(135deg, rgba(247, 172, 177, 0.95) 0%, rgba(242, 176, 209, 0.92) 48%, rgba(248, 205, 166, 0.95) 100%);
  --btn-pc-bg: linear-gradient(135deg, rgba(255, 244, 190, 0.98) 0%, rgba(255, 241, 214, 0.96) 55%, rgba(222, 243, 209, 0.98) 100%);
  --btn-sp-bg: linear-gradient(135deg, rgba(178, 236, 247, 0.98) 0%, rgba(199, 243, 238, 0.96) 55%, rgba(175, 230, 214, 0.98) 100%);

  /* subtle glossy highlight used on buttons */
  --btn-gloss: radial-gradient(120% 140% at 75% 35%, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.0) 55%);
}

body {
  /* max-width: 1200px; */
  margin: 0 auto;
  /* header is fixed, so add top padding to avoid overlap */
  padding: 15px;
  font-family: 'Noto Sans JP', sans-serif;
}

.title {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 60px;
  /* width: 355px; */
  color: #656565;
}

.title h1 {
  border-bottom: 3px solid #656565;
  margin: 0;
}

.title p {
  font-size: 20px;
  margin: 0;
}

.thumbnail {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  justify-content: flex-start;
  text-align: center;
  flex-wrap: wrap;
  margin-top: 150px;
}

.thumbnail__link{
  transition: 0.6s ease;
}

.thumbnail__link:hover{
  opacity: .8;
}

.thumbnail__box {
  width: 100%;
  margin-bottom: 100px;
  padding:0 10px;
}

.thumbnail__img{
  /* aspect-ratio: 4 / 3; */
  margin-bottom: 16px;
}

.thumbnail__box img {
  width: 100%;
  /* aspect-ratio: 4 / 3; */
    object-fit: contain;
}

.thumbnail h2 {
  font-size: 18px;
  color: #292929;
}

.thumbnail h3 {
text-align: left;
display: inline-block;
border-bottom: dashed 1px #000;
}

/* "詳細" ボタン（他CSSに上書きされやすいので少し強めに指定） */
.popup__con .btn a{
  background: var(--btn-detail-bg) !important;
}

/*ポップアップ*/
.open,
.btn a {
  cursor: pointer; /* マウスオーバーでカーソルの形状を変えることで、クリックできる要素だとわかりやすいように */
  position: relative;
  font-size: 16px !important;
    text-shadow: none !important;

  font-weight: bold;
  top: 0;
  padding: 7px;
  display: inline-block;
  text-decoration: none;
  color: #3a3a3a;
  outline: none;
  width: 250px;
  /*border:1px solid #000;*/
  margin: 10px 0;
  /*アニメーションの設定*/
  transition: all 0.2s;
  background-image: var(--btn-gloss);
  background-blend-mode: screen;
  /* box-shadow: 0 2px 3px rgba(0, 0, 0, 0.4), 0 0 50px rgba(128, 128, 128, 0.1); */
  border-radius: 5px;
}

/*hoverをしたらボックスの影が拡がり色が濃くなる*/
.open:hover,
.btn a:hover {
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.4), 0 0 50px rgba(128, 128, 128, 0.1);
  /* top: -3px; */
  color: #3a3a3a !important;
  text-shadow: none !important;
  /* opacity: 0.8; */
}

.popup__con {
  display: flex;
  flex-direction: column;
  font-size: 14px;
  margin-top: 20px;
}

.popup__con__pc > .open {
  background: var(--btn-pc-bg);
}

.popup__con__sp > .open {
  background: var(--btn-sp-bg);
}

#pc1,
#sp1,
#pc2,
#sp2,
#pc3,
#sp3,
#pc4,
#sp4,
#pc5,
#sp5,
#pc6,
#sp6,
#pc7,
#sp7,
#pc8,
#sp8 {
  display: none; /* label でコントロールするので input は非表示に */
}

.overlay {
  display: none; /* input にチェックが入るまでは非表示に */
}

#pc1:checked + .overlay,
#sp1:checked + .overlay,
#pc2:checked + .overlay,
#sp2:checked + .overlay,
#pc3:checked + .overlay,
#sp3:checked + .overlay,
#pc4:checked + .overlay,
#sp4:checked + .overlay,
#pc5:checked + .overlay,
#sp5:checked + .overlay,
#pc6:checked + .overlay,
#sp6:checked + .overlay,
#pc7:checked + .overlay,
#sp7:checked + .overlay,
#pc8:checked + .overlay,
#sp8:checked + .overlay   {
  display: block;
  z-index: 9999;
  background-color: #00000070;
  position: fixed;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
}

.window {
  width:80%;
  height: 80vh;
  background-color: #ffffff;
  border-radius: 6px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: scroll;
}

.sp__window {
    width: min(350px, 36vw);
}

.text {
  font-size: 18px;
  margin: 0;
}
.close {
  cursor: pointer;
  position: fixed;
  top: 6%;
  right: 8%;
  font-size: 24px;
  color: #e1e1e1;
}

@media screen and (max-width: 900px) {
  body {
    width: 100%;
    padding: 80px 0 0;
  }

  .title {
    margin-top: 10px;
    margin-bottom: 30px;
    padding-left: 15px;
  }

  .title h1 {
    margin: 0;
    font-size: 24px;
  }

  .thumbnail {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    text-align: center;
    margin-top:0;
  }

  .thumbnail__box {
    width: 100%;
    padding: 30px 0 60px 0;
    /*border: 1px dotted #6f6c6c;*/
	border-bottom: 1px #ccc solid;
  }

  .thumbnail__box img {
    width: 100%;
  }

  .thumbnail h2 {
	  position: relative;
  display: inline-block;
  padding: 0 55px;
  font-size: 22px;
    /*margin: 10px 0 5px 0;*/
  }

  .open,
  .btn a {
    top: 0;
    padding: 8px;
    width: 300px;
    /*border:1px solid #000;*/
    /*margin: 5px 0;*/
    /*アニメーションの設定*/
    transition: all 0.2s;
    /*box-shadow: none;*/
    font-size:18px;
    border-radius: 5px;
  }

  .window {
	width: 90%;
  }

  .sp__window {
	width: 85%;
  }
}
