/* =========================================================
   Responsive : side footer / mobile footer visibility
   ========================================================= */

.bf-side{
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.bf-side-menu{
  flex: 1;
}

.bf-side-footer{
  margin-top: auto;
  padding: 30px 0px;
}

@media (max-width: 767px){

  .bf-side-footer{
    position: static;
    margin-top: 2rem;
  }

  .site-footer-mobile{
    display: block;
  }

}
/* ==================================================
   SP : brand 内リンクを中央配置
   ================================================== */
@media (max-width: 767px){

  .brand{
    display: flex;
    justify-content: center; /* 横中央 */
    align-items: center;     /* 縦中央（高さがある場合の保険） */
    text-align: center;
    margin-bottom: 0;
  }

  .brand__link{
    display: inline-block;
  }

}

/* ==================================================
   SP : nav.menu を不可視
   ================================================== */
@media (max-width: 767px){

  nav.menu{
    display: none;
  }

}

/* ==================================================
   SP (0–767px) : plates + front grid integration
   - grid : 上端に余白（15px）
   - plate__link : tap size 統一
   - plate__meta : 見た目維持のまま右下へ
   - front main  : 基準幅を外枠へ（padding 0）
   - front grid  : リセットのみ（内側化は凍結）
================================================== */
@media (max-width: 767px){

  /* ------------------------------
     grid : top spacing (all pages)
  ------------------------------ */
  .grid{
    padding-top: 15px;
    padding-bottom: 15px;
  }

  /* ------------------------------
     plate__link : tap size unification
  ------------------------------ */
  .plate__link{
    min-height: 88px;      /* ← 調整ポイント */
    padding: 16px 16px;    /* ← 調整ポイント */
    display: flex;
    align-items: center;
  }

  .plate__title{
    font-size: 18px;       /* ← 調整ポイント */
    line-height: 1.35;     /* ← 調整ポイント */
  }

  /* ------------------------------
     plate__meta : position only
  ------------------------------ */
  .plate__meta{
    top: auto;
    left: auto;
    right: 5px;            /* ← 微調整ポイント */
    bottom: 5px;           /* ← 微調整ポイント */
  }

  /* ------------------------------
     front : main as frame
  ------------------------------ */
  body.is-front .main{
    padding: 0;
  }

  /* ------------------------------
     front : grid reset (inner frame is frozen)
  ------------------------------ */
  body.is-front .main > section.grid,
  body.is-front .main > .grid{
    max-width: none;
    width: 100%;
    margin: 0;
    box-sizing: border-box;

    /* grid要素を内側にしたい場合。凍結。 */
    /*
    width: calc(100% - 4px);
    margin: 2px;
    */
  }
}
