/* ======================================================
   SOTORIE — footer.css
====================================================== */

.s-footer{
  background:#333;
  color:rgba(255,255,255,.72);
  border-top:1px solid rgba(255,255,255,.10);
}

.s-footer__inner{
  width:min(92%,1100px);
  margin:0 auto;
  padding:46px 0 18px;
}

/* Brand */
.s-footer__brand{
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.s-footer__logo{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}
.s-footer__logo img{
  display:block;
  height:auto;
  opacity:.95;
}

/* Tagline */
.s-footer__tagline{
  margin:0;
  font-size:13px;
  line-height:2.0;
  color:rgba(255,255,255,.62);

  max-width:32ch;
  word-break:keep-all;
  overflow-wrap:anywhere;
}

/* Ops */
.s-footer__ops{
  margin:0;
  font-size:12px;
  line-height:1.8;
  color:rgba(255,255,255,.52);
}
.s-footer__ops span{ color:rgba(255,255,255,.64); }

/* Nav */
.s-footer__nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px 28px;
  padding:24px 0 18px;
}

.s-footer__head{
  margin:0 0 12px;
  font-size:11px;
  letter-spacing:.28em;
  color:rgba(255,255,255,.48);
  white-space:nowrap;

  padding-left:10px;
  position:relative;
}
.s-footer__head::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:6px;
  height:1px;
  transform:translateY(-50%);
  background:rgba(255,255,255,.22);
}

.s-footer__list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
}
.s-footer__list li{ min-width:0; }

.s-footer__list a{
  display:inline-block;
  text-decoration:none;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.5; /* ← 0 は潰れるので修正 */
  letter-spacing:.02em;
  opacity:.86;

  padding:6px 0;
  border-bottom:1px solid rgba(255,255,255,0);
  transition:opacity .16s ease, border-color .16s ease, color .16s ease;
}
.s-footer__list a:hover{
  opacity:1;
  color:rgba(255,255,255,.92);
  border-color:rgba(255,255,255,.22);
}

/* Bottom */
.s-footer__bottom{
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.10);
  display:flex;
  flex-direction:column;
  gap:10px;
}

.s-footer__legal{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.s-footer__legal a{
  text-decoration:none;
  font-size:12px;
  color:rgba(255,255,255,.58);
  transition:color .16s ease;
}
.s-footer__legal a:hover{ color:rgba(255,255,255,.78); }

.s-footer__copy{
  margin:0;
  font-size:12px;
  color:rgba(255,255,255,.46);
  letter-spacing:.06em;
}

/* PC */
@media (min-width:900px){
  .s-footer__inner{ padding:56px 0 18px; }
  .s-footer__brand{ padding-bottom:26px; }

  .s-footer__tagline{
    max-width:52ch;
    line-height:2.05;
  }

  .s-footer__nav{
    grid-template-columns:1.2fr 1fr 1fr .8fr;
    gap:36px;
  }

  .s-footer__bottom{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
}
