/* ═══════════════════════════════════════════════════
   ALTEVO Common Stylesheet — common.css  v3.0  © 2026
═══════════════════════════════════════════════════ */
:root {
  --navy:       #0A1F44;
  --gold:       #C9A84C;
  --gold-l:     #E8C97A;
  --gold-d:     #7A6330;
  --gold-bg:    rgba(201,168,76,0.07);
  --gold-border:rgba(201,168,76,0.3);
  --red:        #C04040;
  --white:      #FFFFFF;
  --off-white:  #F9F8F5;
  --light-bg:   #F4F3EF;
  --text:       #1C1C2E;
  --gray:       #2A2A3A; /* 艶のある黒色に変更（旧: #6B6B80） */
  --gray-light: #6B6B80; /* 旧の--grayをgray-lightに */
  --border:     rgba(10,31,68,0.10);
  --border-s:   rgba(10,31,68,0.18);
  --dark:       #050D1A;
  --font-serif:   'Noto Serif JP', serif;
  --font-sans:    'Noto Sans JP', sans-serif;
  --font-display: 'Cormorant Garamond', serif;
  --rainbow: linear-gradient(90deg,#2196F3 0%,#4CAF50 18%,#FFC107 35%,#FF5722 52%,#E91E63 75%,#9C27B0 100%);
  --header-h: 88px;
  --wrap-max: 1200px;
  --wrap-px: 60px;
  --tr-fast: 0.2s ease;
  --tr-mid:  0.35s ease;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:17px;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-sans);font-weight:300;
  color:var(--text);background:var(--white);
  line-height:1.9;overflow-x:hidden;
  padding-top:var(--header-h);
  font-feature-settings:"palt" 1;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
button{cursor:pointer;font-family:inherit;}
::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:var(--dark);}
::-webkit-scrollbar-thumb{background:var(--gold);}

/* ════════════════════════════
   HEADER
════════════════════════════ */
#altevo-header-el{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--header-h);
  background:rgba(255,255,255,0.97);
  backdrop-filter:blur(16px) saturate(1.5);
  border-bottom:1px solid var(--border);
  transition:box-shadow var(--tr-mid),transform var(--tr-mid);
}
#altevo-header-el.ah-scrolled{box-shadow:0 2px 24px rgba(10,31,68,0.10);}
#altevo-header-el.ah-hidden{transform:translateY(-100%);}

.ah-inner{
  max-width:var(--wrap-max);margin:0 auto;
  padding:0 32px;height:100%;
  display:flex;align-items:center;gap:0;
}

/* ── ロゴ ── */
.ah-logo{
  display:flex;flex-direction:column;justify-content:center;
  text-decoration:none;flex-shrink:0;margin-right:24px;
  min-width:0;
}
.ah-logo-img{
  height:40px;width:auto;object-fit:contain;
  display:block;
}
.ah-logo-fallback{
  display:none;
  font-family:var(--font-display);font-size:28px;font-weight:600;
  letter-spacing:.1em;
  background:var(--rainbow);-webkit-background-clip:text;
  -webkit-text-fill-color:transparent;background-clip:text;
}
.ah-logo-tagline{
  font-size:9.5px;letter-spacing:.08em;
  color:#1C1C2E;font-weight:700;
  display:block;line-height:1.2;margin-top:5px;
  white-space:nowrap;
  /* ロゴ幅に合わせて自動調整 */
  max-width:220px;
  overflow:visible; /* 途切れさせない */
}

/* ── PC ナビ ── */
.ah-nav{
  display:flex;align-items:center;gap:0;flex:1;flex-wrap:nowrap;
}
.ah-link{
  display:inline-flex;align-items:center;
  padding:6px 13px;font-size:14px;letter-spacing:.04em;
  color:var(--navy);text-decoration:none;white-space:nowrap;
  font-weight:500;position:relative;transition:color var(--tr-fast);
}
.ah-link::after{
  content:'';position:absolute;bottom:0;left:13px;right:13px;
  height:1.5px;background:var(--gold);transform:scaleX(0);
  transition:transform var(--tr-mid);
}
.ah-link:hover,.ah-link.ah-active{color:var(--gold);}
.ah-link:hover::after,.ah-link.ah-active::after{transform:scaleX(1);}

/* ── サービスドロップダウン ── */
.ah-services-wrap{position:relative;}
.ah-services-btn{
  display:inline-flex;align-items:center;
  padding:6px 13px;font-size:14px;letter-spacing:.04em;
  color:var(--navy);background:none;border:none;
  white-space:nowrap;font-weight:500;font-family:inherit;
  cursor:pointer;transition:color var(--tr-fast);
}
.ah-services-btn:hover{color:var(--gold);}

.ah-services-dropdown{
  position:absolute;top:calc(100% + 6px);left:50%;
  transform:translateX(-50%) translateY(-8px);
  width:540px;
  background:var(--white);
  border:1px solid var(--border-s);
  box-shadow:0 16px 64px rgba(10,31,68,0.14);
  opacity:0;visibility:hidden;
  transition:all var(--tr-mid);z-index:200;
}
.ah-services-dropdown.ah-open{
  opacity:1;visibility:visible;
  transform:translateX(-50%) translateY(0);
}
.ah-dd-inner{padding:6px;}
.ah-dd-item{
  display:flex;align-items:center;gap:14px;
  padding:12px 14px;text-decoration:none;
  transition:background var(--tr-fast);
  border:1px solid transparent;
}
.ah-dd-item:hover{background:var(--off-white);border-color:var(--border);}
.ah-dd-soon{opacity:.72;}
.ah-dd-soon:hover{opacity:1;}

.ah-dd-sym{
  width:52px;height:52px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--off-white);border:1px solid var(--border);
  overflow:hidden;
}
.ah-dd-sym img{width:44px;height:44px;object-fit:contain;}
.ah-dd-musubi{font-family:var(--font-serif);font-size:24px;color:var(--navy);}
.ah-dd-genesis{font-size:22px;color:var(--gold);}
.ah-dd-dx{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--navy);letter-spacing:.1em;}

.ah-dd-text{flex:1;min-width:0;}
.ah-dd-name{display:block;font-size:14px;font-weight:700;color:var(--navy);margin-bottom:2px;letter-spacing:.04em;}
.ah-dd-sub{display:block;font-size:11px;color:var(--gray);letter-spacing:.04em;margin-bottom:3px;}
.ah-dd-desc{display:block;font-size:11.5px;color:var(--gray-light);line-height:1.6;}
.ah-dd-badge{
  display:inline-block;font-size:9px;letter-spacing:.1em;padding:2px 8px;
  background:rgba(201,168,76,.12);border:1px solid var(--gold-border);
  color:var(--gold-d);margin-top:4px;
}

/* ── GENESIS AI ボタン ── */
.ah-right{display:flex;align-items:center;gap:12px;margin-left:auto;padding-left:12px;flex-shrink:0;}

.ah-genesis-btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:10px 20px;min-width:180px;
  background:var(--navy);color:var(--white);
  text-decoration:none;border:1px solid var(--navy);
  transition:all var(--tr-mid);flex-shrink:0;
}
.ah-genesis-btn:hover{background:var(--gold);border-color:var(--gold);color:#000;}

.ah-genesis-main{
  display:flex;align-items:center;gap:8px;
  font-size:14px;font-weight:700;letter-spacing:.14em;white-space:nowrap;
}
.ah-genesis-sphere{
  width:22px;height:22px;
  border-radius:50%;object-fit:cover;
  flex-shrink:0;display:block;
}
.ah-genesis-sub{
  font-size:8.5px;letter-spacing:.04em;
  color:rgba(255,255,255,.7);
  text-align:center;line-height:1.6;margin-top:4px;
  white-space:nowrap;
}
.ah-genesis-btn:hover .ah-genesis-sub{color:rgba(0,0,0,.65);}
.ah-genesis-btn:hover .ah-genesis-main{color:#000;}

/* ── ハンバーガー ── */
.ah-hamburger{
  /* デフォルトは非表示 — メディアクエリで上書き */
  display:none;
  flex-direction:column;gap:6px;
  padding:10px;background:rgba(10,31,68,.08);border:none;
  border-radius:4px;flex-shrink:0;
}
.ah-hamburger span{
  display:block;width:26px;height:2.5px;
  background:var(--navy);border-radius:2px;
  transition:all var(--tr-mid);
}
.ah-hamburger.ah-open span:nth-child(1){transform:translateY(8.5px) rotate(45deg);}
.ah-hamburger.ah-open span:nth-child(2){opacity:0;transform:scaleX(0);}
.ah-hamburger.ah-open span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg);}

/* ── モバイルメニュー ── */
.ah-mobile-menu{
  display:none;
  background:var(--white);border-top:2px solid var(--gold-border);
  position:fixed;top:var(--header-h);left:0;right:0;z-index:999;
  max-height:calc(100vh - var(--header-h));
  box-shadow:0 8px 32px rgba(10,31,68,0.14);
}
.ah-mobile-menu.ah-open{
  display:block;
  overflow-y:auto;
}
.ah-mobile-nav{padding:16px 24px 40px;}
.ah-mobile-link{
  display:block;padding:13px 0;font-size:15px;font-weight:500;
  color:var(--navy);text-decoration:none;
  border-bottom:1px solid var(--border);
  letter-spacing:.04em;transition:color var(--tr-fast);
}
.ah-mobile-link:hover{color:var(--gold);}
.ah-mobile-sub{
  padding-left:20px;font-size:13.5px;font-weight:300;color:var(--gray);
}
.ah-mobile-section{
  padding:16px 0 8px;font-size:9px;
  letter-spacing:.45em;color:var(--gold);font-weight:700;
}
.ah-mobile-genesis{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:20px;padding:16px 24px;
  background:var(--navy);color:var(--white);text-decoration:none;
  font-size:14px;letter-spacing:.14em;font-weight:700;
  transition:background var(--tr-fast);
}
.ah-mobile-genesis:hover{background:var(--gold);color:#000;}
.ah-mobile-genesis-sphere{
  width:24px;height:24px;border-radius:50%;object-fit:cover;
}

/* ════════════════════════════
   FOOTER
════════════════════════════ */
#altevo-footer-el{background:var(--dark);border-top:1px solid rgba(201,168,76,.12);}

.af-top{
  max-width:var(--wrap-max);margin:0 auto;
  padding:72px var(--wrap-px) 56px;
  display:grid;grid-template-columns:280px 1fr;gap:72px;
}

/* ブランド列 */
.af-logo-link{display:inline-block;margin-bottom:12px;}
.af-logo-img{height:44px;width:auto;object-fit:contain;filter:brightness(1.15);}
.af-logo-fallback{
  display:none;
  font-family:var(--font-display);font-size:32px;font-weight:300;
  letter-spacing:.2em;
  background:var(--rainbow);-webkit-background-clip:text;
  -webkit-text-fill-color:transparent;background-clip:text;
}
/* タグライン — 横一行・太字・適切サイズ */
.af-tagline{
  font-size:10px;letter-spacing:.1em;color:var(--white);
  font-weight:700;
  margin-bottom:18px;
  white-space:nowrap; /* 改行しない */
  line-height:1.4;
}
.af-desc{font-size:13px;color:rgba(255,255,255,.4);line-height:2;margin-bottom:24px;}

.af-service-logos{display:none;} /* シンボルマーク非表示 */
.af-svc-logo{display:none;}

/* SNS */
.af-sns{display:flex;gap:10px;}
.af-sns-btn{
  width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.5);text-decoration:none;border-radius:50%;
  transition:all var(--tr-mid);
}
.af-sns-btn:hover{background:var(--gold);border-color:var(--gold);color:#000;}

/* リンク列 */
.af-links{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;}
.af-col-title{font-size:10px;letter-spacing:.45em;color:var(--gold);margin-bottom:18px;font-weight:700;}
.af-col a{
  display:block;font-size:13px;color:rgba(255,255,255,.4);
  text-decoration:none;padding:4px 0;letter-spacing:.03em;
  line-height:1.6;transition:color var(--tr-fast);
}
.af-col a:hover{color:var(--gold-l);}
.af-col small{font-size:10px;opacity:.8;}

.af-bottom{
  border-top:1px solid rgba(255,255,255,.05);
  padding:18px var(--wrap-px);
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:6px;
}
.af-copy{font-size:11px;color:rgba(255,255,255,.25);letter-spacing:.1em;}
.af-copy-sub{font-size:10px;color:rgba(255,255,255,.15);letter-spacing:.08em;}

/* ════════════════════════════
   フローティングボタン
════════════════════════════ */
.af-genesis-float{
  position:fixed;bottom:36px;right:36px;z-index:9000;
  display:flex;flex-direction:column;align-items:flex-end;gap:10px;
  opacity:0;pointer-events:none;transition:opacity var(--tr-mid);
}
.af-genesis-float.af-visible{opacity:1;pointer-events:auto;}

.af-genesis-bubble{
  display:flex;align-items:center;
  background:var(--gold);
  color:#000;font-size:13px;font-weight:700;letter-spacing:.06em;
  padding:11px 18px;white-space:nowrap;
  animation:float-up 3s ease-in-out infinite;
  border-radius:0;
}

.af-genesis-btn{
  width:68px;height:68px;
  border-radius:50%;overflow:hidden;
  background:var(--navy);
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;
  box-shadow:0 4px 28px rgba(10,31,68,.5);
  border:3px solid var(--gold-l);
  transition:all var(--tr-mid);
}
.af-genesis-btn:hover{transform:scale(1.1);box-shadow:0 8px 40px rgba(201,168,76,.6);}
.af-genesis-btn img{
  width:100%;height:100%;object-fit:cover;object-position:center;display:block;
  animation:sphere-rotate 12s linear infinite; /* ゆっくり時計回り */
}
.af-genesis-fallback{
  font-family:var(--font-display);font-size:28px;font-weight:700;
  background:var(--rainbow);-webkit-background-clip:text;
  -webkit-text-fill-color:transparent;background-clip:text;
}

/* ════════════════════════════
   共通ユーティリティ
════════════════════════════ */
.s-wrap{max-width:var(--wrap-max);margin:0 auto;padding:0 var(--wrap-px);}
.s-label{display:block;font-size:13px;letter-spacing:.45em;color:var(--gold);margin-bottom:18px;font-weight:700;}
.s-title{
  font-family:var(--font-serif);
  font-size:clamp(26px,3.8vw,50px);
  font-weight:700;line-height:1.45;color:var(--navy);margin-bottom:14px;
}
.s-title-white{color:var(--white);}
.s-en{font-family:var(--font-display);font-size:16px;font-style:italic;color:var(--gray);margin-bottom:56px;}
.s-en-white{color:rgba(255,255,255,.45);}

/* スクロールリビール */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-d1{transition-delay:.08s;}
.reveal-d2{transition-delay:.16s;}
.reveal-d3{transition-delay:.24s;}
.reveal-d4{transition-delay:.32s;}

/* ボタン */
.btn-primary{
  display:inline-block;font-family:var(--font-serif);
  font-size:14px;font-weight:700;letter-spacing:.15em;
  padding:18px 48px;background:var(--gold);color:#000;
  text-decoration:none;border:2px solid var(--gold);transition:all var(--tr-mid);
}
.btn-primary:hover{background:var(--gold-l);border-color:var(--gold-l);transform:translateY(-2px);box-shadow:0 6px 28px rgba(201,168,76,.35);}

.btn-secondary{
  display:inline-block;font-size:14px;letter-spacing:.15em;
  padding:18px 40px;border:1px solid var(--border-s);
  color:var(--navy);text-decoration:none;transition:all var(--tr-mid);
}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold);}
.btn-secondary-white{border-color:rgba(255,255,255,.4);color:var(--white);}
.btn-secondary-white:hover{border-color:var(--gold-l);color:var(--gold-l);}

.text-link{
  display:inline-flex;align-items:center;gap:10px;
  font-size:14px;letter-spacing:.12em;color:var(--navy);
  text-decoration:none;border-bottom:1px solid var(--navy);padding-bottom:2px;
  transition:all var(--tr-mid);
}
.text-link:hover{color:var(--gold);border-color:var(--gold);gap:18px;}

/* ════════════════════════════
   キーフレーム
════════════════════════════ */
@keyframes float-up{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes scrollLine{0%,100%{opacity:1;transform:scaleY(1)}50%{opacity:.3;transform:scaleY(.4)}}
/* 球体ロゴ時計回り回転 */
@keyframes sphere-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* ════════════════════════════
   レスポンシブ
════════════════════════════ */

/* タブレット */
@media(max-width:1100px){
  :root{--wrap-px:40px;}
  .ah-genesis-btn{min-width:160px;padding:8px 14px;}
  .ah-genesis-sub{font-size:8px;}
  .af-top{grid-template-columns:1fr;gap:44px;padding-bottom:36px;}
  .af-links{grid-template-columns:repeat(2,1fr);gap:28px;}
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   スマホ・タブレット縦向き
   ハンバーガー表示の境界
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media(max-width:960px){
  /* ナビを非表示 */
  .ah-nav{display:none !important;}
  /* ハンバーガーを表示 ← これが最重要 */
  .ah-hamburger{display:flex !important;}
  .ah-genesis-sub{display:none !important;}
  .ah-genesis-main{font-size:13px;letter-spacing:.1em;}
  .ah-genesis-btn{min-width:auto;padding:10px 16px;}
}

@media(max-width:768px){
  :root{--header-h:68px;--wrap-px:20px;}
  .ah-inner{padding:0 16px;}
  .ah-logo-img{height:34px;}
  .ah-logo-tagline{display:none;}
  .ah-genesis-btn{padding:9px 14px;}
  .ah-genesis-main{font-size:12px;}

  .af-top{padding:44px 20px 32px;}
  .af-bottom{padding:14px 20px;flex-direction:column;gap:4px;text-align:center;}
  .af-links{grid-template-columns:1fr 1fr;}

  .af-genesis-float{bottom:20px;right:20px;}
  .af-genesis-btn{width:60px;height:60px;}
  .af-genesis-bubble{font-size:12px;padding:9px 14px;}

  .s-wrap{padding:0 20px;}
  .s-title{font-size:clamp(20px,5vw,36px);}
}

@media(max-width:480px){
  .af-links{grid-template-columns:1fr;}
  .af-service-logos{gap:8px;}
  .ah-genesis-btn{padding:8px 12px;}
}