/* ページトップへジャンプ */
.back-to-top {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  display: none;
  z-index: 1200;

  width: 46px;
  height: 46px;
  border-radius: 50%;
  background-color: #FFF8ED;
  text-decoration: none;
  box-shadow: 3px 0 15px rgba(245, 235, 215, 0.1); /*SPメニューのシャドーと同じ*/
  transition: background-color 0.3s ease, transform 0.2s ease;
  cursor: pointer;
  border: none;
  padding: 0;
}
/* 矢印を構成する2本の線（共通設定） */
.back-to-top::before,
.back-to-top::after {
  content: "";
  position: absolute;
  top: 38%;
  left: 50%;   /* 一旦、線の左端をボタンの中央に置く */
  width: 16px; /* 線の長さ */
  height: 1px; /* 線の太さ */
  background-color: #1a0f08; /* 線の色 */
}

/* 左側の線 */
.back-to-top::before {
  transform-origin: right center;
  transform: translate(-100%, -50%) rotate(-40deg);
}

/* 右側の線 */
.back-to-top::after {
  transform-origin: left center;
  transform: translate(0%, -50%) rotate(40deg);
}

.back-to-top:hover {
  background-color:#EAD09E;
  color: #1a0f08;
  text-decoration: none;
}

/* 未確定リンク部分 */
.footer-links {
  width:100%;
  background-color:rgba(245, 235, 215, 0.05);
  text-align: center;
  padding:2rem;
}

.footer-links p {
  margin: 1rem 0;
}

/*後援*/
.support-wrap{
  max-width:700px;
  margin:0 auto;
}

.support-title{
  margin-bottom:1rem;
  padding-bottom:.5rem;
  border-bottom:1px solid rgba(255,255,255,.2);
  text-align:left;
}

.support-org {
  display:grid;
  grid-template-columns:140px 1fr;
  gap:1rem;
  margin:0 auto 1.5rem;
  text-align:left;
}

.support-org img {
  height: auto;
  transition: transform 0.3s ease;
  background: #fff;
  border-radius: 4px;
}

.support-org img:hover {
  transform: scale(1.05);
}

.jsap-hokkaido{
  display:inline-block;
  background:#fff;
  width:90px;
  border-radius:4px;
  padding:8px;
  text-align:center;
  box-sizing:border-box;
}

.jsap-hokkaido-logo{
  display:block;
  margin:0 auto;
}

.jsap-hokkaido-note{
  margin-top:8px;
  line-height:1.3;
  color:#000;
}

.jsap-hokkaido-note{
  margin-top:8px;
  line-height:1.3;
  color:#000;
}

.jsap-hokkaido-note-s{
  font-size:0.5rem;
  white-space:nowrap;
}

.jsap-hokkaido-note-l{
  font-size:0.8rem;
  white-space:nowrap;
}

/* スポンサーグリッド */
.grid-sponsor {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 2rem;
  align-items:start;
  justify-items:center;
  margin-bottom: 2rem;
}

.grid-sponsor a .murata {
  width: 100%;
  max-width: 250px;
  height: auto;
  object-fit: contain;
  transition: transform 0.3s ease;
  border-radius: 4px;
  background-color: #FFFFFF;
}

.grid-sponsor a .samco {
  width: 100%;
  max-width: 180px;
  height: auto;
  object-fit: contain;
  transition: transform 0.3s ease;
  border-radius: 4px;
  background-color: #FFFFFF;
}

.grid-sponsor a:hover img {
  transform: scale(1.05);
}

/* ロゴグリッド */
.grid-logo {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1rem;
  align-items: center;
  justify-items:center;
  margin-bottom: 2rem;
}

.grid-logo a img {
  width: 120px; 
  height: auto;
  object-fit: contain;
  transition: transform 0.3s ease;
  border-radius: 4px;
  background-color: #FFFFFF;
}

.grid-logo a:hover img {
  transform: scale(1.05);
}

/* レスポンシブ対応（768px以下でも複数列） */
@media (max-width: 768px) {
  .grid-logo {
    grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
  }

  .grid-logo a img {
    width: 80px;
  }

}



