@charset "utf-8";

/* ▼ Google Fonts 読み込み */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap');

  :root{
    --bg:#0a0f1f; --bg-2:#0c1226; --text:#e7ecf5; --muted:#98a3b8;
    --line:rgba(255,255,255,.08); --brand:#60a5fa; --brand-2:#22d3ee; --accent:#a78bfa;
    --radius:16px; --shadow:0 10px 30px rgba(0,0,0,.25);
    --digitWidth:0.7em; --digitHeight:1.2em;
    --sidebar-w: 200px; --header-h: 60px;
  }
  *{box-sizing:border-box}

  /* ↓↓↓ 修正：ここにはみ出し禁止（overflow-x: hidden）を追加しました ↓↓↓ */
  html,body{
    height:100%;
    overflow-x: hidden; /* これで横スライダーを消します */
    width: 100%;
  }
  /* ↑↑↑ 修正ここまで ↑↑↑ */

  body{
    margin:0; line-height:1.65; color:var(--text);
    font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Inter, "Hiragino Kaku Gothic ProN", Meiryo, "Noto Sans JP", sans-serif;
    background:
      radial-gradient(1200px 800px at 10% -10%, rgba(96,165,250,.15), transparent 60%),
      radial-gradient(900px 600px at 90% 0%, rgba(34,211,238,.14), transparent 60%),
      linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
    background-attachment: fixed;
  }
  a{color:inherit; text-decoration:none}
  .container{width:min(1200px,92%); margin:0 auto}
  .grid-lines{position:fixed; inset:0; pointer-events:none; z-index:0;
    background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 48px 48px, 48px 48px; mask-image: radial-gradient(1200px 800px at 50% -10%, black, transparent 70%);
  }

  /* Header */
  header{
    position:fixed; top:0; left:0; right:0; height:var(--header-h); z-index:60;
    backdrop-filter:saturate(140%) blur(10px);
    background:rgba(10,15,31,.6); border-bottom:1px solid var(--line);
  }
  .navbar{height:100%; display:flex; align-items:center; justify-content:space-between; gap:16px}
  .brand{display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:.2px}
  .brand-badge{width:24px; height:24px; border-radius:8px;
    background:conic-gradient(from 220deg, var(--brand), var(--brand-2), var(--accent), var(--brand));
    box-shadow:0 6px 18px rgba(96,165,250,.35);
  }
  .cta{display:flex; gap:8px}
  .btn{padding:8px 12px; border-radius:12px; font-weight:600; border:1px solid var(--line); background:rgba(255,255,255,.04); color:var(--text)}
  .btn.primary{background:linear-gradient(135deg, var(--brand), var(--brand-2)); border-color:transparent; color:#081225}

  /* Side Nav */
  .side-nav{
    position:fixed; z-index:50;
    top:var(--header-h); left:0; bottom:0; width:var(--sidebar-w);
    border-right:1px solid var(--line);
    padding:18px 10px; color:var(--muted);
    background:rgba(6,10,24,.25);
    backdrop-filter:saturate(120%) blur(6px);
  }
  .side-nav a{display:block; padding:8px 8px; border-radius:10px; font-size:14px; color:var(--muted)}
  .side-nav a:hover{color:var(--text); background:rgba(255,255,255,.06)}
  .side-caption{font-size:11px; opacity:.9; padding:8px 8px 0}

  .mobile-nav{display:none}
  @media (max-width: 980px){
    :root{ --sidebar-w: 0px; }
    .side-nav{display:none}
    .mobile-nav{
      position:sticky; top:var(--header-h); z-index:45;
      display:flex; gap:8px; overflow:auto; padding:10px 12px; border-bottom:1px solid var(--line);
      background:rgba(10,15,31,.55); backdrop-filter:saturate(140%) blur(8px);
    }
    .mobile-nav a{white-space:nowrap; font-size:13px; padding:8px 10px; border-radius:10px; color:var(--muted); border:1px solid var(--line)}
    .mobile-nav a:hover{color:var(--text); background:rgba(255,255,255,.06)}
  }

  /* Main */
  main{position:relative; z-index:1; margin-top:var(--header-h); margin-left:calc(var(--sidebar-w)); min-height:calc(100vh - var(--header-h));}

  /* Hero（文言を削除したため余白と背景のみ） */
  .hero{position:relative; padding:56px 0 40px; overflow:hidden}
  .orbs{position:absolute; inset:-20% -10% auto -10%; height:60vh; pointer-events:none; z-index:-1; filter:blur(30px) saturate(140%); opacity:.8}
  .orb{position:absolute; border-radius:50%; mix-blend-mode:screen}
  .o1{width:420px; height:420px; left:5%; top:10%; background:radial-gradient(circle at 30% 30%, rgba(96,165,250,.75), transparent 60%); animation:float 18s ease-in-out infinite}
  .o2{width:520px; height:520px; right:10%; top:-8%; background:radial-gradient(circle at 50% 50%, rgba(34,211,238,.6), transparent 55%); animation:float 22s ease-in-out infinite reverse}
  .o3{width:360px; height:360px; left:50%; top:40%; background:radial-gradient(circle at 50% 50%, rgba(167,139,250,.6), transparent 60%); animation:float 26s ease-in-out infinite}
  @keyframes float{0%,100%{transform:translateY(0)} 50%{transform:translateY(-18px)}}

  /* Counter */
  .headline{text-align:center; font-weight:800; letter-spacing:.02em; font-size:clamp(18px,4vw,30px)}
  .tagline{color:var(--muted); text-align:center; letter-spacing:.02em; font-size:clamp(12px,3.5vw,16px); margin-top:8px}
  .counter-holder{display:flex; justify-content:center; width:100%; transform-origin:center top; margin-top:10px}
  .andfort-counter{display:inline-flex; align-items:flex-end; gap:.25em; color:#0ea5e9}
  .andfort-counter .label,.andfort-counter .suffix{color:var(--text); opacity:.9; font-size:clamp(12px, 2.6vw, 16px)}
  .andfort-counter .digits{display:flex; gap:.2em}
  .andfort-counter .sep{display:inline-flex; align-items:center; justify-content:center; min-width:calc(var(--digitHeight)*.5); height:var(--digitHeight); color:#0ea5e9}
  .reel{overflow:hidden; width:var(--digitWidth); height:var(--digitHeight)}
  .reel>.inner{will-change:transform}
  .row{display:flex; align-items:center; justify-content:center; user-select:none; height:var(--digitHeight); font-variant-numeric:tabular-nums}
  .size-lg{font-size:clamp(26px,8vw,64px); line-height:1}

  /* Sections */
.trust {
  padding: 8px 0 24px;
  opacity: .95;
  margin-top: -10px;
  border-top: 1px solid rgba(255,255,255,.05); /* 上に薄い線でつなぐ */
}

  .trust-row{display:grid; grid-template-columns:repeat(6,1fr); gap:18px; align-items:center}
  .trust-item {
  padding: 8px 12px;
  border: 1px dashed var(--line);
  border-radius: 14px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
  @media (max-width:900px){.trust-row{grid-template-columns:repeat(3,1fr)}}

  .section{padding:56px 0}
  .section h2{font-size:clamp(22px,3.2vw,32px); margin:0 0 18px}
  .kicker{color:var(--muted); font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.16em; margin-bottom:8px}
  .products{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
  @media (max-width:1000px){.products{grid-template-columns:1fr 1fr}}
  @media (max-width:680px){.products{grid-template-columns:1fr}}
  .card{position:relative; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)); box-shadow:0 6px 20px rgba(0,0,0,.2); transition:transform .25s ease, border-color .25s ease}
  .card:hover{transform:translateY(-4px); border-color:rgba(255,255,255,.18)}
  .card-inner{padding:20px; display:grid; gap:12px}
  .card h3{margin:0; font-size:18px}
  .card p{margin:0; color:var(--muted); font-size:14px}
  .chip{display:inline-block; padding:4px 8px; border-radius:999px; background:rgba(96,165,250,.15); color:#cfe2ff; font-size:12px; border:1px solid rgba(96,165,250,.25)}
  .thumb{aspect-ratio:16/9; border-radius:12px; border:1px solid var(--line);
          background: radial-gradient(120% 100% at 30% 20%, rgba(96,165,250,.25), transparent 60%),
                      radial-gradient(120% 100% at 70% 60%, rgba(167,139,250,.22), transparent 60%),
                      linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));}

  .split{
  display:flex;
  gap:28px;
  align-items:flex-start;
}

/* モバイルでは縦並びにする（flex そのままでOK） */
@media (max-width:900px){
  .split{
    flex-direction:column;
  }
}

  .panel{border:1px solid var(--line); border-radius:18px; padding:20px; background:rgba(255,255,255,.02)}
  .mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size:13px; color:#d1e0ff}
  .code{background:#0b142b; border:1px solid var(--line); border-radius:14px; padding:16px; overflow:auto; box-shadow:var(--shadow)}

  .pricing{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
  @media (max-width:980px){.pricing{grid-template-columns:1fr}}
  .price{padding:24px; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.02); box-shadow:0 10px 30px rgba(0,0,0,.2)}
  .price h3{margin:0 0 6px}
  .price .yen{font-size:36px; font-weight:800; letter-spacing:-.02em}
  .price ul{margin:14px 0 0; padding:0 0 0 18px; color:var(--muted)}

  /* Footer */
  /* 元の設定は上書きされるので、ここは残していても問題ありませんが
      一番下の「最強設定」が優先されます。 */
  footer{border-top:1px solid var(--line); margin-top:56px; padding:36px 0 48px; color:var(--muted)}
  .footer-grid{display:grid; grid-template-columns:1.2fr repeat(4,1fr); gap:18px}
  .footer-grid h4{margin:0 0 10px; color:var(--text); font-size:14px}
  .footer-grid a{display:block; padding:6px 0; color:var(--muted); font-size:14px}
  @media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}

  .reveal{opacity:0; transform:translateY(10px); transition:.6s ease}
  .reveal.on{opacity:1; transform:translateY(0)}
/* ▼ Heroをファーストビュー中央に配置するための調整 */
.hero{
  padding: 0;                    /* 余白はコンテナ側で取る */
  position: relative; overflow: hidden;
}
.hero .center-fold{
  /* ヘッダー分を引いた“画面高”にして、中央寄せ */
  min-height: calc(100vh - var(--header-h));
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 12px; text-align: center;
  padding: 24px 0;                 /* ほんの少しだけ余白 */
}
@media (max-width:980px){
  .hero .center-fold{
    min-height: calc(100svh - var(--header-h));
  }
}

/* 見出し/タグラインはそのまま使う（必要なら微調整） */
.headline {
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  letter-spacing: .02em;
  font-size: clamp(24px, 4.2vw, 38px);
}

.andfort-counter {
  font-family: "Inter", sans-serif;
  font-weight: 700;
  letter-spacing: .05em;
}

.tagline {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #b4bed4;
}

/* カウンターの数字を少しだけ存在感アップ */
.size-lg{ font-size: clamp(34px, 8vw, 76px); line-height: 1; }

/* ===== 下層セクションの質感調整（添付画像デザイン準拠） ===== */

/* ページ全体に下方向へのグラデーション */
body {
  margin: 0;
  line-height: 1.65;
  color: var(--text);
  font-family: "Inter", "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  background:
    radial-gradient(1200px 800px at 10% -10%, rgba(96,165,250,.15), transparent 60%),
    radial-gradient(900px 600px at 90% 0%, rgba(34,211,238,.14), transparent 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  background-attachment: fixed;
}

/* セクション全体のトーンを少し暗く、柔らかく */
.section {
  background: linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(255,255,255,.01) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 8px 24px rgba(0,0,0,.4);
  border-radius: 20px;
  padding: 60px 40px;
  margin: 60px auto;
}

/* PRODUCTS のカードを浮かせるように光沢 */
.card {
  border: 1px solid rgba(255,255,255,.05);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
  transition: all .3s ease;
}
.card:hover {
  transform: translateY(-6px);
  border-color: rgba(255,255,255,.15);
  box-shadow: 0 12px 28px rgba(0,0,0,.45);
}

/* PRICING セクションのカード */
.price {
  border: 1px solid rgba(255,255,255,.05);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
  transition: all .3s ease;
}
.price:hover {
  transform: translateY(-5px);
  border-color: rgba(255,255,255,.15);
  box-shadow: 0 12px 32px rgba(0,0,0,.45);
}

/* Footer に上品なぼかしグラデーション */
/* ここも元のコードに残していますが、最後に追加する設定が勝ちます */
footer {
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 48px 0 60px;
}
footer p, footer a { color: var(--muted); }

/* --- 詳細リンクボックス --- */
.card-link {
  margin-top: 20px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 12px;
  transition: background 0.3s ease, transform 0.2s ease;
}

.card-link:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
}

.card-link a {
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: var(--brand-2);
  font-weight: 600;
  text-decoration: underline;
  letter-spacing: 0.02em;
  transition: color 0.3s ease;
}

.card-link a:hover {
  color: #fff;
}

/* ====== Products カード行の整列を安定化 ====== */
.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

/* カード内を縦並びにして「下端にボタン」を固定 */
.card { display: flex; }
.card-inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* 上詰め */
  height: 100%;
}

/* 見出しや本文の余白を最小限に */
.card-inner .chip { margin-bottom: 8px; }
.card-inner h3 { margin: 0 0 8px; }
.card-inner p  { margin: 0; line-height: 1.8; color: var(--muted); }

/* サムネ/リンクを「下に張り付ける」 */
.thumb,
.card-link { 
  margin-top: auto;        /* ← これが肝。本文の下で残り高さを吸収して最下部へ */
  border-radius: 12px;
}

/* ↓ 賃貸・売却の “詳細ページへ” ボックス */
.card-link {
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.04);
  transition: background .3s ease, transform .2s ease;
}
.card-link:hover {
  background: rgba(255,255,255,.08);
  transform: translateY(-2px);
}
.card-link a {
  font-family: "Inter","Noto Sans JP",sans-serif;
  color: var(--brand-2);
  font-weight: 600;
  text-decoration: underline;
  letter-spacing: .02em;
  transition: color .3s ease;
}
.card-link a:hover { color: #fff; }

/* 既存の .thumb も下端固定で高さを統一（Mio用） */
.thumb {
  height: 120px;
  background: radial-gradient(120% 120% at 20% 10%, rgba(255,255,255,.08), transparent 60%),
               linear-gradient(145deg, rgba(100,150,255,.18), rgba(120,80,200,.14));
  border: 1px solid rgba(255,255,255,.06);
}

/* ==========================================
   ▼ カード3枚の高さ・ボタン位置を完全統一
   ========================================== */
.products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

/* 各カードの高さを自動揃え */
.card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  min-height: 480px; /* ← 任意（必要に応じて高さを調整） */
}

/* カード内部を上下で分割（本文＋ボタン） */
.card-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-grow: 1;
}

/* ボタンが常に最下部に来るよう固定 */
.card-link {
  margin-top: auto;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 12px;
  transition: background 0.3s ease, transform 0.2s ease;
}

.card-link:hover {
  background: rgba(255, 255, 255, 0.08);
  transform: translateY(-2px);
}

.card-link a {
  font-family: "Inter", "Noto Sans JP", sans-serif;
  color: var(--brand-2);
  font-weight: 600;
  text-decoration: underline;
  letter-spacing: 0.02em;
  transition: color 0.3s ease;
}

.card-link a:hover {
  color: #fff;
}

/* AIチャットの外枠（panel）の背景や影を全部透明にする */
#docs .panel {
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

/* チャット枠の最大横幅を増やす（1000px～1200px 推奨） */
#docs .panel.code {
  max-width: 1100px !important;
  margin: 0 auto !important;
}

/* ============================
   Pricing版「詳細ページへ」を
   .card-link と完全に統一
============================ */

.pricing .price .detail-link-box {
  margin-top: 20px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(255,255,255,.04);
  border-radius: 12px;

  transition: background .3s ease, transform .2s ease;
}

.pricing .price .detail-link-box:hover {
  background: rgba(255,255,255,.08);
  transform: translateY(-2px);
}

.pricing .price .detail-link-box a {
  font-family: "Inter","Noto Sans JP",sans-serif;
  color: var(--brand-2);
  font-weight: 600;
  text-decoration: underline;
  letter-spacing: .02em;
  transition: color .3s ease;
}

.pricing .price .detail-link-box a:hover {
  color: #fff;
}

/* =========================================
   ▼ GEMINI追加：フッター強制表示修正
   ========================================= */

footer {
  /* 1. まず強制的に表示させる */
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  
  /* 2. 配置とサイズ */
  width: 100% !important;
  padding: 40px 20px !important;
  margin-top: auto !important;
  text-align: center !important;
  border-top: 1px solid rgba(255,255,255,0.1) !important;

  /* 3. 最前面に持ってくる */
  position: relative !important;
  z-index: 9999 !important; 

  /* 4. 文字と背景を確実に見えるようにする */
  color: #ffffff !important; /* 真っ白な文字 */
  background-color: rgba(0, 0, 0, 0.3) !important; /* 半透明の黒背景 */
  text-shadow: 0 2px 4px rgba(0,0,0,0.8) !important; /* 文字に影 */
}

footer .brand-name {
  display: block !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #ffffff !important;
  margin-bottom: 5px !important;
}

footer .copyright {
  display: block !important;
  font-size: 11px !important;
  color: #cbd5e1 !important;
}