/* =========================
     MAIN FOOTER
========================= */

.main-footer{
  background:#0f0f0f;
  border-top:1px solid #222;
}

/* フッター上部（3カラム） */
.footer-main{
  grid-template-columns: minmax(300px,1fr) minmax(300px,1.5fr) minmax(200px,1fr);
  max-width:100%;
  margin:0 auto;
  padding:40px 5% 0 5%;
  display:grid;
  gap:30px;
  align-items:stretch;
}

.footer-inner{
  display:flex;
  align-items:stretch;
}

/* =========================
   左カラム
========================= */
.footer-left{
  border-right:1px solid rgba(255,255,255,0.08);
  padding-right: 20px;
  height: 100%;
}

.footer-logo{
  font-size:26px;
  font-weight:600;
  letter-spacing:3px;
  margin-bottom:20px;
}

.footer-logo span{
  color:#ff6a00;
}

.sns-group{
  display:flex;
  flex-wrap: wrap; /* 幅に応じて自動改行 */
  gap:15px;
}

.sns-icon-wrapper{
  width:40px;
  height:40px;
  background:#141414;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  transition:0.3s;
}

.sns-icon-wrapper:hover{
  background:#ff6a00;
}

.sns-icon-wrapper a{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}

.sns-icon-wrapper img{
  width: 25px;
  height: auto;
  object-fit: contain;
  display: block;
}

.sns-icon-wrapper:hover img{
  filter: brightness(0);
}

.tiktok-wrapper .sns-icon{
  width:43px;
  height:auto;
}

.nico-wrapper .sns-icon{
  width:30px;
  height:auto;
}

/* =========================
   中央カラム（SITE MAP / ジャンル分け）
========================= */
.footer-center {
  border-right: 1px solid rgba(255,255,255,0.08);
  padding: 0 20px;
  height: 100%;
  box-sizing: border-box;
  margin-bottom: 20px;
}

.footer-center h4 {
  color: #ff6a00;
  margin-bottom: 15px;
  letter-spacing: 3px;
  font-size: 22px;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}

.footer-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  margin-bottom: 8px;
}

.footer-links li strong {
  color: #ff6a00;
  font-size: 16px;
  letter-spacing: 2px;
  display: block;
  margin-bottom: 6px;
}

.footer-links a {
  color: #bbb;
  text-decoration: none;
  font-size: 16px;
  transition: 0.3s;
}

.footer-links a:hover {
  color: #ff6a00;
}

/* =========================
   右カラム（サポート/お問い合わせ）
========================= */
.footer-contact{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.footer-contact .support-item{
  display:flex;
  flex-direction:column;
  align-items:center;   /* ← ラベルとボタンの中央を揃える */
  text-align:center;
  margin-bottom:30px;
}

/* 最後の余白を消す */
.footer-contact .support-item:last-child{
  margin-bottom:0;
}

.footer-contact .support-label{
  font-size:14px;
  color:#ff6a00;
  letter-spacing:2px;
  font-weight:500;
  margin-bottom:6px;
  text-align:center;
}

.footer-contact .support-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:180px;
  background:#ff6a00;
  color:#fff;
  padding:10px 0;
  border-radius:6px;
  font-size:20px;
  font-weight:600;
  text-decoration:none;
  transition:background 0.3s;
}

.footer-contact .support-btn:hover{
  background:#ff8c33;
}

.footer-contact .support-icon{
  width:30px;
  height:30px;
}

/* =========================
   フッター下部
========================= */
.footer-lower{
  width:100%;
  margin-top:30px;
}

.footer-sub-links{
  font-size:14px;
  color:rgba(255,255,255,0.6);
  text-align:center;
  margin-bottom:10px;
}

.footer-sub-links a{
  color:rgba(255,255,255,0.8);
  text-decoration:none;
  margin:0 5px;
  transition:color 0.3s;
}

.footer-sub-links a:hover{
  color:#ff6a00;
}

.footer-bottom{
  background:#141414;
  text-align:center;
  padding:20px 0;
  font-size:14px;
  color:#aaaaaa;
}

/* =========================
   スマホ
========================= */
@media (max-width:768px){
  .footer-main{
    grid-template-columns:1fr;
    gap:30px;
    text-align:center;
  }

  .footer-left{
    border-right:none;
    padding-right:0;
    order:1;   /* SITE MAP */
  }

  .footer-center {
    border-right: none;
    padding: 0 15px;
    order: 3;
    padding-bottom: 20px;
  }

  .footer-links {
    justify-content: center;
    gap: 10px 20px;
  }

  .footer-links ul {
    width: auto;
    min-width: 150px;
    margin-bottom: 20px;
    text-align: left;
  }


  .sns-group{
    justify-content:center;
  }


  .footer-contact{
    justify-content:center;
    order: 2;   /* お問い合わせを上に */
  }

.footer-main > div:not(:first-child){
  border-top:1px solid #333;
  padding-top:40px;
}

.footer-sub-links{
  font-size:13px;
  color:rgba(255,255,255,0.6);
  text-align:center;
  margin-bottom:10px;
}

.footer-sub-links a{
  color:rgba(255,255,255,0.8);
  text-decoration:none;
  margin:0 5px;
  transition:color 0.3s;
}

.footer-sub-links a:hover{
  color:#ff6a00;
}

.footer-bottom{
  background:#141414;
  text-align:center;
  padding:20px 0;
  font-size:13px;
  color:#aaaaaa;
}

}

/* =========================
   タブレット対応
========================= */
@media (min-width: 769px) and (max-width: 1024px) {

.footer-main{
    grid-template-columns:1fr;
    gap:50px;
    text-align:center;
    display:grid;
}

.footer-left{
    border-right:none;
    padding-right:0;
    order:1;   /* SITE MAP */
}

 .footer-center {
    border-right: none;
    padding: 0 20px;
    order: 3;
    padding-bottom: 20px;
  }

  .footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px 30px;
  }

  .footer-links ul {
    width: auto;
    min-width: 200px;
    margin-bottom: 20px;
    text-align: left;
  }

.sns-group{
    justify-content:center;
}

.footer-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap; /* 折り返し可能に */
  justify-content: flex-start; /* 左寄せにする場合 */
  max-width: 100%; /* 中央カラムからはみ出ない */
}


.footer-contact{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px;
    justify-items:center;
    order: 2;
}

.footer-contact .support-item{
    margin-bottom:0;
}


.footer-main > div:not(:first-child){
  border-top:1px solid #333;
  padding-top:40px;
}

}