/* ============================================
   KEGAMI ─ Common CSS
   ヘッダー・フッター・タイポグラフィ・カラー変数
   ============================================ */

:root{
  /* カラー（LP v3 継承） */
  --bg:#FAF8F6;
  --bg-alt:#F1ECF0;
  --bg-dark:#2A2428;
  --text:#2A2428;
  --text-sub:#483E4C;
  --text-light:#7A6E84;
  --accent:#7A6888;
  --accent-dark:#5A4A62;
  --accent-light:#B8A8C2;
  --warm:#C4AA85;
  --gold:#B89E78;
  --border:rgba(122,104,136,0.15);

  /* フォント（LP v3 継承） */
  --serif:'Zen Old Mincho',serif;
  --sans:'Noto Sans JP',sans-serif;
  --accent-font:'Cormorant Garamond',serif;

  /* レイアウト */
  --max:1100px;
  --header-h:64px;
}

/* リセット */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  color:var(--text);
  background:var(--bg);
  font-weight:300;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{background:none;border:none;cursor:pointer;font-family:inherit;color:inherit}

.container{max-width:var(--max);margin:0 auto;padding:0 24px}

/* ============================================
   HEADER
   ============================================ */
header.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:100;
  background:rgba(250,248,246,0.92);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
  transition:background .3s;
}
.header-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.logo{
  font-family:var(--accent-font);
  font-size:28px;
  letter-spacing:.25em;
  color:var(--accent-dark);
  font-weight:400;
}
.nav-list{
  display:flex;
  gap:32px;
  list-style:none;
  align-items:center;
}
.nav-list a{
  font-size:12px;
  letter-spacing:.18em;
  color:var(--text-sub);
  font-weight:400;
  transition:color .2s;
}
.nav-list a:hover{color:var(--accent-dark)}
.header-cta{
  font-size:12px;
  padding:10px 24px;
  background:var(--accent-dark);
  color:#fff;
  letter-spacing:.1em;
  font-weight:400;
  transition:background .3s;
  display:inline-block;
}
.header-cta:hover{background:var(--text)}

/* ハンバーガー（モバイル） */
.hamburger{
  display:none;
  width:28px;
  height:20px;
  position:relative;
  z-index:101;
}
.hamburger span{
  display:block;
  position:absolute;
  height:1px;
  width:100%;
  background:var(--text);
  transition:.3s;
}
.hamburger span:nth-child(1){top:0}
.hamburger span:nth-child(2){top:9px}
.hamburger span:nth-child(3){top:19px}
.hamburger.active span:nth-child(1){top:9px;transform:rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){top:9px;transform:rotate(-45deg)}

.nav-overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(250,248,246,0.98);
  z-index:99;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:32px;
}
.nav-overlay.active{display:flex}
.nav-overlay a{
  font-size:18px;
  letter-spacing:.2em;
  color:var(--text);
}

@media (max-width:768px){
  .nav-list, .header-cta{display:none}
  .hamburger{display:block}
}

/* ============================================
   FOOTER（全ページ共通）
   ============================================ */
footer.site-footer{
  background:var(--bg);
  border-top:1px solid var(--border);
  padding:80px 24px 40px;
  text-align:center;
  margin-top:80px;
}
.footer-inner{
  max-width:var(--max);
  margin:0 auto;
}
.footer-brand{
  font-family:var(--accent-font);
  font-size:28px;
  letter-spacing:.25em;
  color:var(--accent-dark);
  margin-bottom:40px;
}
.footer-nav{
  display:flex;
  justify-content:center;
  gap:32px;
  flex-wrap:wrap;
  list-style:none;
  margin-bottom:48px;
  padding:0;
}
.footer-nav a{
  font-size:12px;
  letter-spacing:.2em;
  color:var(--text-sub);
  transition:color .2s;
}
.footer-nav a:hover{color:var(--accent-dark)}
.footer-operator{
  font-size:13px;
  color:var(--text-sub);
  line-height:2;
  margin-bottom:24px;
}
.footer-operator a{
  color:var(--accent-dark);
  border-bottom:1px solid var(--border);
  transition:border-color .2s;
}
.footer-operator a:hover{border-color:var(--accent-dark)}
.footer-copy{
  font-size:11px;
  color:var(--text-light);
  letter-spacing:.1em;
}
.footer-sns{
  margin:24px 0;
}
.footer-sns a{
  display:inline-block;
  width:36px;
  height:36px;
  border:1px solid var(--border);
  border-radius:50%;
  line-height:36px;
  color:var(--text-sub);
  font-size:14px;
  transition:all .2s;
}
.footer-sns a:hover{
  border-color:var(--accent-dark);
  color:var(--accent-dark);
}

/* ============================================
   共通ユーティリティ
   ============================================ */
.section-label{
  font-family:var(--accent-font);
  font-size:13px;
  letter-spacing:.5em;
  color:var(--accent);
  font-weight:300;
  text-transform:uppercase;
  text-align:center;
  display:block;
  margin-bottom:32px;
}

.btn{
  display:inline-block;
  padding:18px 40px;
  font-size:13px;
  letter-spacing:.2em;
  font-weight:400;
  transition:all .3s;
  cursor:pointer;
  text-align:center;
  border:1px solid transparent;
}
.btn-primary{
  background:var(--accent-dark);
  color:#fff;
}
.btn-primary:hover{
  background:var(--text);
}
.btn-secondary{
  background:transparent;
  color:var(--accent-dark);
  border-color:var(--accent-dark);
}
.btn-secondary:hover{
  background:var(--accent-dark);
  color:#fff;
}

.btn-en{
  display:block;
  font-family:var(--accent-font);
  font-size:11px;
  letter-spacing:.2em;
  margin-top:4px;
  opacity:.8;
  font-style:italic;
}

/* フェードアップアニメーション */
@keyframes fadeUp{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

.fade-up{
  opacity:0;
  animation:fadeUp .8s ease forwards;
}

/* reduced-motion対応 */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
