/* ===================== FOOTER ===================== */
.footer{
  position:relative;
  background:#070707;
  color:#fff;
  padding:clamp(3.5rem,8vh,6rem) 0 2.2rem;
}
.footer__inner{
  max-width:1320px;margin:0 auto;
  padding:0 clamp(1.4rem,5vw,5rem);
  display:grid;
  grid-template-columns:minmax(280px,1.2fr) repeat(4,minmax(0,1fr));
  gap:clamp(2rem,3vw,3rem);
  border-top:1px solid rgba(255,255,255,.14);
  padding-top:clamp(3rem,6vh,4.5rem);
}

/* brand block */
.footer__logo{
  width:clamp(150px,15vw,200px);
  filter:drop-shadow(0 0 10px rgba(255,255,255,.12));
}
.footer__lead{
  margin:1.6rem 0 1rem;
  font-family:"Noto Sans JP",sans-serif;font-weight:500;
  font-size:clamp(1rem,1.5vw,1.2rem);letter-spacing:.1em;color:#fff;
}
.footer__desc{
  font-family:"Noto Sans JP",sans-serif;font-weight:300;
  font-size:.78rem;line-height:2;letter-spacing:.04em;
  color:rgba(255,255,255,.55);margin:0;
}
.footer__contact{
  display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;
  min-width:230px;margin-top:1.8rem;
  padding:.9rem 1.5rem;
  border:1px solid rgba(255,255,255,.35);
  font-family:"Oswald",sans-serif;font-size:.82rem;letter-spacing:.22em;
  color:#fff;text-decoration:none;
  transition:background .35s,color .35s,border-color .35s;
}
.footer__contact svg{transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.footer__contact:hover{background:var(--red);color:#fff;border-color:var(--red)}
.footer__contact:hover svg{transform:translateX(7px)}
.footer__social{
  display:flex;gap:1.2rem;list-style:none;margin:1.8rem 0 0;padding:0;
}
.footer__social a{
  width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  color:rgba(255,255,255,.8);
  display:flex;align-items:center;justify-content:center;
  transition:background .3s,color .3s,border-color .3s,transform .3s;
}
.footer__social a:hover{background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-3px)}

/* link columns */
.footer__cols{display:contents}
.footer__col h3{
  font-family:"Oswald",sans-serif;font-weight:500;
  font-size:.84rem;letter-spacing:.2em;color:#fff;
  margin:0 0 1.4rem;padding-bottom:1rem;
  border-bottom:1px solid var(--red);
}
.footer__col ul{list-style:none;margin:0;padding:0}
.footer__col li{margin-bottom:1rem}
.footer__col a{
  font-family:"Noto Sans JP",sans-serif;font-weight:300;
  font-size:.82rem;letter-spacing:.05em;
  color:rgba(255,255,255,.62);text-decoration:none;
  transition:color .3s,padding-left .3s;
}
.footer__col a:hover{color:#fff;padding-left:.3rem}

/* bottom bar */
.footer__bottom{
  max-width:1320px;margin:clamp(2.5rem,5vh,4rem) auto 0;
  padding:1.8rem clamp(1.4rem,5vw,5rem) 0;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;flex-wrap:wrap;
}
.footer__copy{
  font-family:"Inter",sans-serif;font-size:.74rem;letter-spacing:.04em;
  color:rgba(255,255,255,.5);
}
.footer__legal{display:flex;align-items:center;gap:1.4rem;list-style:none;margin:0;padding:0}
.footer__legal li{position:relative}
.footer__legal li + li::before{
  content:"";position:absolute;left:-.7rem;top:50%;transform:translateY(-50%);
  width:1px;height:11px;background:rgba(255,255,255,.25);
}
.footer__legal a{
  font-family:"Noto Sans JP",sans-serif;font-size:.74rem;letter-spacing:.04em;
  color:rgba(255,255,255,.55);text-decoration:none;transition:color .3s;
}
.footer__legal a:hover{color:#fff}

@media(max-width:980px){
  .footer__inner{grid-template-columns:1fr 1fr;gap:2.4rem}
  .footer__brand{grid-column:1 / -1}
}
@media(max-width:560px){
  .footer__inner{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1 / -1}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:1rem}
  .footer__legal{flex-wrap:wrap;gap:1.4rem}
}

/* ===================== FIXED RECRUIT BANNER ===================== */
.fbanner{
  position:fixed;
  right:clamp(12px,1.6vw,24px);
  bottom:clamp(12px,1.6vw,24px);
  z-index:90;
  width:clamp(128px,12.75vw,167px);
  opacity:0;visibility:hidden;
  transform:translateY(30px) scale(.96);
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),visibility .7s;
  filter:drop-shadow(0 18px 40px rgba(0,0,0,.5));
}
.fbanner.is-shown{opacity:1;visibility:visible;transform:none}
.fbanner__link{display:block;border-radius:8px;overflow:hidden;line-height:0}
.fbanner__link img{width:100%;height:auto;display:block}
@media(max-width:560px){
  .fbanner{width:108px;right:10px;bottom:10px}
}
@media(prefers-reduced-motion:reduce){
  .fbanner{transition:opacity .4s,visibility .4s;transform:none}
}
