/* ==========================================================
   KOO ACU-TECH LAB — Common Stylesheet (Rebrand v2)
   ========================================================== */
:root{
  --bg:#fbfaf7;
  --bg-soft:#f5f1e8;
  --bg-panel:#f1ede4;
  --bg-deep:#ebe4d3;
  --ink:#1a1a1a;
  --ink-soft:#2a2419;
  --slate:#4a4039;
  --slate-soft:#6e6357;
  --line:#d8d0c2;
  --line-soft:#e8e0cf;
  --gold:#bfa680;
  --gold-deep:#9c8763;
  --gold-soft:#d4c0a0;
  --accent:#8a6a3c;
  --accent-deep:#5e4824;
  --crimson:#9c4a4a;
  --shadow:rgba(26,26,26,.06);
  --shadow-deep:rgba(26,26,26,.16);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Noto Serif JP',serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.85;
  overflow-x:hidden;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--gold);color:var(--bg)}
img{max-width:100%;height:auto;display:block}

/* ===== ヘッダー ===== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:22px 48px;
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(251,250,247,.82);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(216,208,194,.4);
  transition:padding .4s ease;
}
.site-header.scrolled{padding:14px 48px;background:rgba(251,250,247,.96)}

.logo-block{
  display:flex;align-items:center;gap:14px;text-decoration:none;
}
.logo-mark{
  width:38px;height:38px;
}
.logo-text{
  font-family:'Outfit',sans-serif;
  font-weight:400;color:var(--ink);
  letter-spacing:.18em;line-height:1;
}
.logo-text .logo-name{
  font-size:22px;font-weight:500;letter-spacing:.24em;display:block;
}
.logo-text .logo-sub{
  font-size:9px;color:var(--gold-deep);
  letter-spacing:.32em;margin-top:5px;display:block;
}

.site-nav{display:flex;list-style:none;gap:32px}
.site-nav a{
  color:var(--slate);text-decoration:none;
  font-size:11px;letter-spacing:.22em;font-weight:400;
  font-family:'Outfit',sans-serif;text-transform:uppercase;
  position:relative;padding:6px 0;transition:color .3s;
}
.site-nav a::after{
  content:'';position:absolute;bottom:0;left:50%;width:0;height:1px;
  background:var(--gold);transition:all .4s ease;transform:translateX(-50%);
}
.site-nav a:hover,.site-nav a.active{color:var(--gold-deep)}
.site-nav a:hover::after,.site-nav a.active::after{width:100%}

.header-cta{display:flex;gap:12px;align-items:center}
.tel-mini{
  display:flex;align-items:center;gap:6px;
  font-family:'Outfit',sans-serif;
  font-size:13px;font-weight:500;color:var(--ink);
  text-decoration:none;letter-spacing:.05em;
  padding:8px 14px;border:1px solid var(--line);
  transition:all .3s;
}
.tel-mini:hover{border-color:var(--gold);color:var(--gold-deep)}
.tel-mini::before{content:'☎';font-size:14px;color:var(--gold-deep)}

.reserve-btn{
  padding:12px 26px;background:var(--ink);color:var(--bg);
  text-decoration:none;font-size:11px;letter-spacing:.22em;
  font-family:'Outfit',sans-serif;text-transform:uppercase;
  border:1px solid var(--ink);
  transition:all .4s cubic-bezier(.7,0,.3,1);
  position:relative;overflow:hidden;white-space:nowrap;
}
.reserve-btn::before{
  content:'';position:absolute;inset:0;background:var(--gold);
  transform:translateX(-101%);transition:transform .5s cubic-bezier(.7,0,.3,1);
}
.reserve-btn span{position:relative;z-index:1}
.reserve-btn:hover{border-color:var(--gold)}
.reserve-btn:hover::before{transform:translateX(0)}

/* ===== セクションラベル ===== */
.section-label{
  font-family:'Outfit',sans-serif;
  font-size:11px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold-deep);
  display:flex;align-items:center;gap:14px;
  margin-bottom:24px;
}
.section-label::before{
  content:'';width:36px;height:1px;background:var(--gold);
}
.section-label.center{justify-content:center}
.section-label.center::after{
  content:'';width:36px;height:1px;background:var(--gold);
}

/* ===== 共通ボタン ===== */
.btn-primary{
  padding:18px 42px;background:var(--ink);color:var(--bg);
  text-decoration:none;font-size:12px;letter-spacing:.24em;
  font-family:'Outfit',sans-serif;text-transform:uppercase;font-weight:400;
  transition:all .4s ease;
  border:1px solid var(--ink);display:inline-block;
  position:relative;overflow:hidden;
}
.btn-primary span{position:relative;z-index:1}
.btn-primary::before{
  content:'';position:absolute;inset:0;background:var(--gold);
  transform:translateX(-101%);transition:transform .5s cubic-bezier(.7,0,.3,1);
}
.btn-primary:hover{border-color:var(--gold)}
.btn-primary:hover::before{transform:translateX(0)}
.btn-secondary{
  color:var(--ink);text-decoration:none;
  font-size:12px;letter-spacing:.24em;
  font-family:'Outfit',sans-serif;text-transform:uppercase;
  padding-bottom:6px;border-bottom:1px solid var(--ink);
  transition:all .3s;
}
.btn-secondary:hover{color:var(--gold-deep);border-color:var(--gold)}

/* ===== フッター ===== */
.site-footer{
  background:var(--ink);color:var(--bg);
  padding:80px 48px 36px;
}
.footer-inner{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:60px;margin-bottom:60px;
}
.footer-logo{
  display:flex;align-items:center;gap:14px;
  margin-bottom:24px;
}
.footer-logo svg{filter:brightness(0) invert(1)}
.footer-logo .ftname{
  font-family:'Outfit',sans-serif;font-weight:500;
  font-size:20px;letter-spacing:.24em;color:var(--bg);
}
.footer-logo .ftsub{
  font-size:9px;color:var(--gold);letter-spacing:.32em;
  margin-top:4px;display:block;
}
.site-footer p{
  font-size:13px;line-height:2;
  color:rgba(251,250,247,.6);
}
.footer-col h6{
  font-family:'Outfit',sans-serif;
  font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold);
  margin-bottom:24px;font-weight:400;
}
.footer-col ul{list-style:none}
.footer-col li{
  font-size:13px;color:rgba(251,250,247,.7);
  line-height:2.2;
}
.footer-col a{color:rgba(251,250,247,.7);text-decoration:none;transition:color .3s}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{
  border-top:1px solid rgba(191,166,128,.18);
  padding-top:36px;
  display:flex;justify-content:space-between;
  font-family:'Outfit',sans-serif;
  font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(251,250,247,.4);
}

/* ===== スクロールリビール ===== */
.reveal{opacity:0;transform:translateY(40px);transition:all 1.2s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:translateY(0)}

/* ===== レスポンシブ ===== */
@media (max-width:1024px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:48px}
  .tel-mini{display:none}
}
@media (max-width:640px){
  .site-header{padding:16px 20px}
  .site-header.scrolled{padding:12px 20px}
  .site-nav{display:none}
  .logo-mark{width:32px;height:32px}
  .logo-text .logo-name{font-size:16px;letter-spacing:.18em}
  .logo-text .logo-sub{font-size:7px}
  .reserve-btn{padding:10px 16px;font-size:10px;letter-spacing:.16em}
  .site-footer{padding:60px 24px 30px}
  .footer-inner{grid-template-columns:1fr;gap:40px}
  .footer-bottom{flex-direction:column;gap:12px;text-align:center}
}
