/* ══════════════════════════════════════
   COMMON — 全ページ共通スタイル
   変数・フォント・リセット・ローダー・フッター・スクロールアニメ
══════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --ink:#1a1a1a;
  --ink-dark:#0d0d0d;
  --blue:#00BCD4;
  --blue2:#26C6DA;
  --blue-pale:#E0F7FA;
  --bg:#ffffff;
  --bg2:#F8F9FA;
  --bg3:#e8e8e8;
  --dark:#0a0a0a;
  --dark2:#141414;
  --dark3:#1e1e1e;
  --border:rgba(0,0,0,.08);
  --accent:#E8A317;
  --accent-hover:#D4941A;
  --ff:'Montserrat','Noto Sans JP',sans-serif;
  --ffj:'Hiragino Kaku Gothic Std','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;
}
html{scroll-behavior:smooth;}
body{font-family:var(--ff);background:var(--bg);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased;}

/* ── LOADER ── */
#loader{
  position:fixed;inset:0;z-index:9999;
  background:var(--dark);display:flex;align-items:center;justify-content:center;
  transition:opacity .6s ease;
}
#loader.hide{opacity:0;pointer-events:none;}
.ld-content{display:flex;flex-direction:column;align-items:center;gap:1.5rem;}
.ld-mark{animation:ldUp .8s cubic-bezier(.16,1,.3,1) both;}
.ld-word{
  font-family:'Montserrat',sans-serif;font-weight:300;
  font-size:clamp(1.4rem,3vw,2.2rem);letter-spacing:.5em;color:rgba(255,255,255,.7);
  animation:ldUp .8s cubic-bezier(.16,1,.3,1) .15s both;
}
.ld-bar-wrap{width:200px;height:1px;background:rgba(255,255,255,.15);position:relative;margin-top:.5rem;}
.ld-bar{position:absolute;top:0;left:0;height:1px;background:#fff;animation:ldBar 1.2s ease forwards;}
@keyframes ldUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ldBar{from{width:0}to{width:100%}}

/* ── FOOTER ── */
footer{background:var(--dark);border-top:1px solid rgba(255,255,255,.06);}
.ft-main{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:1.8fr repeat(3,1fr);
  gap:2.5rem;padding:3.5rem 4rem 2.5rem;
}
.ft-brand{display:flex;flex-direction:column;gap:1.2rem;}
.ft-logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;}
.ft-logo-text{font-family:var(--ff);font-size:1rem;font-weight:800;color:#fff;letter-spacing:.1em;}
.ft-brand-desc{
  font-family:var(--ffj);font-size:.7rem;font-weight:300;
  color:rgba(255,255,255,.35);line-height:1.8;margin-top:.3rem;
}
.ft-socials{display:flex;gap:.7rem;}
.ft-social{
  width:32px;height:32px;
  background:rgba(255,255,255,.08);color:#fff;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;transition:background .2s;
}
.ft-social:hover{background:var(--blue);}
.ft-social svg{width:14px;height:14px;fill:#fff;}
.ft-cta{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.68rem;font-weight:600;letter-spacing:.07em;
  background:rgba(255,255,255,.08);color:#fff;
  padding:.6rem 1.3rem;text-decoration:none;width:fit-content;
  transition:background .2s;
}
.ft-cta:hover{background:var(--blue);}
.ft-nav h4{font-size:.6rem;font-weight:700;letter-spacing:.18em;color:rgba(255,255,255,.5);margin-bottom:1rem;}
.ft-nav ul{list-style:none;display:flex;flex-direction:column;gap:.45rem;}
.ft-nav ul li a{
  font-family:var(--ffj);font-size:.7rem;
  color:rgba(255,255,255,.35);text-decoration:none;
  transition:color .2s;
}
.ft-nav ul li a:hover{color:#fff;}
.ft-bottom{
  max-width:1200px;margin:0 auto;
  padding:1.2rem 4rem;border-top:1px solid rgba(255,255,255,.06);
  display:flex;justify-content:space-between;align-items:center;
}
.ft-copy{font-size:.6rem;color:rgba(255,255,255,.2);letter-spacing:.08em;}
.ft-bottom .ft-socials{display:flex;gap:.6rem;}
.ft-bottom .ft-social{
  width:28px;height:28px;
  background:rgba(255,255,255,.08);color:#fff;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;transition:background .2s;
}
.ft-bottom .ft-social:hover{background:var(--blue);}
.ft-bottom .ft-social svg{width:13px;height:13px;fill:rgba(255,255,255,.5);}

/* ── SCROLL ANIMATIONS ── */
.sr{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.sr.vis{opacity:1;transform:none;}
.sr.d1{transition-delay:.1s;}.sr.d2{transition-delay:.2s;}.sr.d3{transition-delay:.3s;}
.sr.d4{transition-delay:.4s;}.sr.d5{transition-delay:.5s;}

/* ── FOOTER RESPONSIVE ── */
@media(max-width:1024px){
  .ft-main{grid-template-columns:1fr 1fr;gap:2rem;}
}
@media(max-width:640px){
  .ft-main{grid-template-columns:1fr 1fr;gap:1.5rem;padding:2.5rem 1.4rem 2rem;}
  .ft-brand{grid-column:1/-1;}
  .ft-bottom{padding:.8rem 1.4rem;flex-direction:column;gap:.8rem;align-items:center;}
}
