/* 閉じるボタン（PCでは非表示） */
.nav-close { display: none; }

/* ===== スマホ メニュー修正 =====
   .site-header の backdrop-filter が固定配置の包含ブロックを作り、
   position:fixed; inset:0 のモバイルメニューがヘッダー高さ内に閉じ込められて
   ナビ項目が画面外にはみ出す不具合を修正。ビューポート単位で全画面化する。 */
@media (max-width: 1100px) {
  .header-right {
    width: 100vw;
    height: 100vh;
    height: 100dvh; /* iOS の動的ツールバー対応 */
    top: 0;
    left: 0;
    right: auto;
    bottom: auto;
    justify-content: flex-start;
  }
  .nav-close {
    display: block;
    position: absolute;
    top: 14px;
    right: 16px;
    width: 44px;
    height: 44px;
    font-size: 34px;
    line-height: 40px;
    text-align: center;
    color: var(--color-text, #1a1a1a);
    background: none;
    border: 0;
    cursor: pointer;
    z-index: 2;
  }
  .nav-close:hover { color: var(--color-primary, #009944); }
}

/* ===== 投資対象エリア別 ファンドカード（テーマ準拠 / 1rem=10px） ===== */
.region-cards-wrap{ margin-top: 8px; }
.fund-cards{
  display:grid; grid-template-columns:repeat(2,1fr); gap:24px;
}
@media (max-width:900px){ .fund-cards{ grid-template-columns:1fr; gap:20px; } }
.fund-card{
  position:relative;
  background:var(--color-bg, #fff);
  border:1px solid var(--color-border, #e0e0e0);
  border-radius:8px;
  padding:26px 28px 24px;
  box-shadow:0 2px 16px rgba(0,0,0,.05);
  display:flex; flex-direction:column;
  transition:box-shadow .25s ease, transform .25s ease;
}
.fund-card:hover{ box-shadow:0 10px 30px rgba(0,0,0,.10); transform:translateY(-2px); }
.fund-card::before{
  content:""; position:absolute; left:0; top:24px; bottom:24px; width:4px;
  background:var(--color-primary, #009944); border-radius:0 4px 4px 0;
}
.fund-card-head{ margin-bottom:16px; }
.fund-card-name{
  font-size:1.9rem; line-height:1.55; margin:0 0 12px;
  color:var(--color-text, #1a1a1a); font-weight:700; letter-spacing:.01em;
}
.fund-card-company{
  display:inline-block; margin:0;
  font-size:1.3rem; font-weight:600; line-height:1.4;
  color:var(--color-primary-dark, #007a35);
  background:var(--color-primary-light, #e6f5ec);
  padding:5px 14px; border-radius:999px;
}
.fund-card-feature{
  font-size:1.5rem; line-height:2; color:var(--color-text, #1a1a1a);
  margin:0 0 20px; flex:1;
}
.fund-card-specs{
  margin:0; display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--color-border, #e0e0e0);
  border:1px solid var(--color-border, #e0e0e0); border-radius:8px; overflow:hidden;
}
.fund-card-specs .fund-spec{ background:var(--color-bg-alt, #f5f7f6); padding:13px 16px; }
.fund-card-specs dt{
  font-size:1.15rem; color:var(--color-text-mute, #666); margin:0 0 5px;
  font-weight:600; letter-spacing:.03em;
}
.fund-card-specs dd{
  font-size:1.45rem; color:var(--color-text, #1a1a1a); margin:0; line-height:1.6; font-weight:500;
}
@media (max-width:480px){ .fund-card-specs{ grid-template-columns:1fr; } }
.fund-cards-empty{ color:var(--color-text-mute, #666); font-size:1.5rem; padding:24px 0; }

/* ===== ファンド・オブ・ファンズ 組入ファンド一覧 ===== */
.fof-wrap{ margin-top: 10px; }
.fof-list{ list-style:none; margin:0; padding:0; display:grid; gap:16px; }
.fof-card{
  position:relative; background:var(--color-bg,#fff); border:1px solid var(--color-border,#e0e0e0);
  border-radius:8px; padding:20px 24px; box-shadow:0 2px 14px rgba(0,0,0,.05);
}
.fof-card-head{ display:flex; align-items:flex-start; gap:14px; }
.fof-num{
  flex:none; width:32px; height:32px; border-radius:50%; background:var(--color-primary,#009944);
  color:#fff; font-weight:700; font-size:1.5rem; display:flex; align-items:center; justify-content:center;
}
.fof-name{ font-size:1.8rem; line-height:1.5; margin:2px 0 0; color:var(--color-text,#1a1a1a); font-weight:700; }
.fof-card-body{ margin-top:14px; padding-left:46px; }
.fof-targets-label{ font-size:1.2rem; color:var(--color-text-mute,#666); font-weight:600; margin:0 0 8px; }
.fof-targets{ list-style:none; margin:0; padding:0; }
.fof-targets li{
  position:relative; padding:8px 14px 8px 30px; font-size:1.4rem; line-height:1.75; color:var(--color-text,#1a1a1a);
  background:var(--color-bg-alt,#f5f7f6); border-radius:6px; margin-bottom:6px;
}
.fof-targets li::before{ content:"▸"; position:absolute; left:12px; color:var(--color-primary,#009944); }
@media (max-width:600px){ .fof-card-body{ padding-left:0; } }

/* ===== CMS 追加スタイル（ニュース詳細オーバーレイ） ===== */
.news-open { cursor: pointer; }

.news-modal{
  position:fixed; inset:0; z-index:9999; display:none;
  align-items:center; justify-content:center; padding:20px;
}
.news-modal.is-open{ display:flex; }
.news-modal-backdrop{
  position:absolute; inset:0; background:rgba(15,23,42,.55); backdrop-filter:blur(2px);
}
.news-modal-inner{
  position:relative; background:#fff; max-width:640px; width:100%; max-height:85vh;
  border-radius:10px; box-shadow:0 24px 70px rgba(0,0,0,.45);
  padding:40px 36px 32px; overflow:auto; animation:news-modal-in .25s ease;
}
@keyframes news-modal-in{
  from{ opacity:0; transform:translateY(18px) scale(.98); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}
.news-modal-close{
  position:absolute; top:12px; right:16px; width:36px; height:36px;
  border:0; background:transparent; font-size:28px; line-height:1;
  color:#94a3b8; cursor:pointer; border-radius:8px;
}
.news-modal-close:hover{ background:#f1f5f9; color:#334155; }
.news-modal-meta{ display:flex; align-items:center; gap:12px; margin:0 0 12px; flex-wrap:wrap; }
.news-modal-date{ font-size:13px; color:#64748b; font-weight:600; letter-spacing:.02em; }
.news-modal-cat{
  display:inline-block; font-size:12px; font-weight:700; color:#fff;
  padding:3px 12px; border-radius:999px; background:#64748b;
}
/* 既存サイトのカテゴリ色に合わせる（無い場合のフォールバック込み） */
.news-modal-cat.is-product{ background:#2563eb; }
.news-modal-cat.is-new{ background:#059669; }
.news-modal-cat.is-important{ background:#dc2626; }
.news-modal-cat.is-info{ background:#6b7280; }
.news-modal-title{ font-size:19px; line-height:1.6; margin:0 0 18px; color:#111827; font-weight:700; }
.news-modal-body{ white-space:pre-wrap; line-height:1.9; color:#334155; font-size:15px; }
.news-modal-linkwrap{ margin-top:22px; }
.news-modal-link{
  display:inline-block; padding:10px 22px; background:#1a4a8a; color:#fff;
  border-radius:8px; text-decoration:none; font-size:14px; font-weight:600;
}
.news-modal-link:hover{ background:#12386b; }
body.news-modal-open{ overflow:hidden; }
