/* ============================================================
   Pattern 4 / INTEGRATED
   骨格・フォント     : パターン3（Codex 再構成版）
   デザインディレクション : パターン2（Claude Code ブラッシュアップ版）
   カラー            : 中央大学 elsi center アイデンティティ準拠
                       黒 #221815 ／ 赤 #E3372E ／ 白（3色規定）
                       本文サイズの赤は #C22A22（白地 5.7:1）
                       2026-08-06 FB反映: 赤はポイント使いのみに抑制し、
                       機能色・アクセントを中央大学ネイビー #1E3C90 と
                       黒・グレーに変更（赤の残存箇所＝ELSI赤ドット、
                       ナビ現在地下線、カード細罫、ヒーロー赤ノード）
   ============================================================ */

/* ---------- スクロール進捗バー（パターン2より移植） ---------- */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0;z-index:300;
  background:linear-gradient(90deg,#1E3C90,#5F7BD0);
  pointer-events:none;
}

/* ---------- エディトリアル透かし（ゴースト数字・パターン2より移植） ---------- */
.sec-head,.purpose-head,.evidence-copy{position:relative}
.ghost-num{
  position:absolute;right:0;top:-26px;z-index:0;
  font-family:var(--gothic);font-weight:700;
  font-size:clamp(3.4rem,6.6vw,5.6rem);line-height:1;letter-spacing:.04em;
  color:transparent;-webkit-text-stroke:1.2px rgba(34,24,21,.13);
  pointer-events:none;user-select:none;
}

/* ---------- アウトライン文字マーキー（パターン2より移植） ---------- */
.outline-marquee{
  overflow:hidden;border-block:1px solid var(--hair);
  padding:26px 0;background:var(--paper);
}
.outline-marquee .track{
  display:flex;width:max-content;white-space:nowrap;
  animation:p4-marquee 36s linear infinite;
}
.outline-marquee span{
  font-family:var(--mono);font-weight:600;
  font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:.12em;line-height:1;
  color:transparent;-webkit-text-stroke:1.2px rgba(34,24,21,.28);
  padding-right:56px;
}
.outline-marquee span b{
  font-weight:600;color:transparent;-webkit-text-stroke:1.2px rgba(227,55,46,.75);
}
@keyframes p4-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.outline-marquee .track{animation:none}}

/* ---------- ヒーロー ステージド・リビール（パターン2より移植） ---------- */
@keyframes p4-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.archive-copy .hero-status,.archive-copy .kicker,.archive-copy h1,
.archive-copy .lead,.archive-copy .hero-cta{
  animation:p4-rise .7s cubic-bezier(.22,.61,.36,1) both;
}
.archive-copy .hero-status{animation-delay:.05s}
.archive-copy .kicker{animation-delay:.15s}
.archive-copy h1{animation-delay:.25s}
.archive-copy .lead{animation-delay:.4s}
.archive-copy .hero-cta{animation-delay:.55s}
.archive-index{animation:p4-rise .8s cubic-bezier(.22,.61,.36,1) .5s both}

/* ---------- elsi赤ドットのアクセント（ロゴマニュアルのモチーフ） ---------- */
.archive-edition span:first-child::before{
  content:"";display:inline-block;width:9px;height:9px;border-radius:50%;
  background:var(--gold);margin-right:10px;vertical-align:1px;
}
.status-head span::before{
  content:"";display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--gold);margin-right:9px;vertical-align:1px;
}

/* ---------- 微調整（白黒基調の締まり） ---------- */
.hero-news .in .tag.navy{background:var(--blue);border-color:var(--blue);color:#fff}
.archive-hero-frame{border-color:var(--hair)}
.status-value{color:var(--blue)}
.status-value small{color:var(--mute)}

/* ---------- 下層ページ未制作のご案内トースト ---------- */
.p4-toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(12px);
  z-index:400;background:var(--navy);color:#fff;
  font-size:.85rem;line-height:1.7;letter-spacing:.02em;
  padding:14px 22px;border-left:4px solid var(--gold);border-radius:3px;
  box-shadow:0 14px 34px rgba(23,16,13,.3);
  max-width:min(92vw,560px);opacity:0;transition:opacity .25s,transform .25s;
}
.p4-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- プレビュー注記帯 ---------- */
.p4-note{
  background:var(--wash);border-bottom:1px solid var(--hair);
  font-size:.78rem;letter-spacing:.04em;color:var(--mute);
  text-align:center;padding:8px var(--pad);
}
.p4-note b{color:var(--gold-tx);font-weight:700}

/* ---------- hero: 静止画＋光アニメ（青の連鎖点灯） ---------- */
.archive-hero-art img{filter:brightness(1.05)}
.hero-lights{position:absolute;inset:0;pointer-events:none}
.hero-lights .ln{position:absolute;border-radius:50%;opacity:0;will-change:opacity,transform;
  background:radial-gradient(circle, rgba(255,255,255,.98) 0%, rgba(120,180,255,.95) 16%, rgba(29,111,216,.75) 38%, rgba(11,99,196,.34) 56%, rgba(11,99,196,0) 74%);
  filter:drop-shadow(0 0 7px rgba(11,99,196,.6));
  animation:lnPulse 8s ease-in-out infinite}
.hero-lights .ln::before{content:"";position:absolute;inset:-28%;border-radius:50%;
  border:2px solid rgba(29,111,216,.5);opacity:0;transform:scale(.5);
  animation:lnRing 8s ease-out infinite;animation-delay:inherit}
.hero-lights .ln.red{
  background:radial-gradient(circle, rgba(255,255,255,.98) 0%, rgba(255,170,162,.95) 18%, rgba(240,82,70,.7) 40%, rgba(227,55,46,.3) 58%, rgba(227,55,46,0) 75%);
  filter:drop-shadow(0 0 10px rgba(227,55,46,.7));
  animation:lnRed 8s ease-in-out infinite}
.hero-lights .ln.red::before{border-color:rgba(227,55,46,.5)}
@keyframes lnPulse{
  0%{opacity:0;transform:scale(.4)}
  7%{opacity:1;transform:scale(1.06)}
  12%{opacity:.96;transform:scale(1)}
  55%{opacity:.85;transform:scale(.94)}
  76%{opacity:0;transform:scale(.55)}
  100%{opacity:0;transform:scale(.4)}}
@keyframes lnRing{
  0%{opacity:0;transform:scale(.45)}
  7%{opacity:.9;transform:scale(.7)}
  30%{opacity:0;transform:scale(1.7)}
  100%{opacity:0;transform:scale(1.7)}}
@keyframes lnRed{
  0%{opacity:.45;transform:scale(.85)}
  6%{opacity:1;transform:scale(1.1)}
  50%{opacity:.7;transform:scale(.95)}
  80%{opacity:.4;transform:scale(.85)}
  100%{opacity:.45;transform:scale(.85)}}
@media (prefers-reduced-motion: reduce){.hero-lights{display:none}}

/* ---------- カラー比率: ネイビー#1E3C90（中央大学サイト実測）=機能色・アクセント / 赤=アイデンティティのポイントのみ ---------- */
:root{--blue:#1E3C90;--blue-dk:#15296B;--blue-lt:#9FB1E0}
.text-link{color:var(--blue)}
.text-link:hover{color:var(--blue-dk)}
.evidence-links a{color:var(--blue)}
.evidence-links a:hover{color:var(--blue-dk)}
a.card-link .more{color:var(--blue)}
.archive-nav a::after{color:var(--blue)}
.archive-nav a:hover{color:var(--blue-dk)}
.status-label{color:var(--blue)}
.output-points span{color:var(--blue)}
.official-facts dt{color:var(--blue)}
.research-brief-head p{color:var(--blue)}
.steps li::before{color:var(--blue)}
.logic-flow .step{color:var(--blue)}
.logic-flow li:nth-child(2) .step{color:var(--blue-lt)}
.logic-flow li+li::before{color:var(--blue)}
.site-foot h4{color:var(--blue-lt)}
a.card-link:nth-child(3)::before{background:var(--blue)}

/* 大面積の黒はロゴの見た目に合わせて中立ブラック（#221815は大面積だと茶に見えるため） */
.band,.output-meta,.logic-flow li:nth-child(2){background:#1D1B1A}
.site-foot{background:#191716}

/* ---------- フッター: 確定サイトマップ準拠の4カラム＋サイトポリシー列 ---------- */
.foot-in{grid-template-columns:1.3fr 1fr 1fr 1fr 1.2fr}
@media (max-width:900px){.foot-in{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-in{grid-template-columns:1fr}}
.site-foot .foot-plain{color:#8B8683}

/* ---------- 下層ページ ファーストビュー強化（2026-08-06） ---------- */
.page-hero{background:#fff}
.page-hero::after{display:none}
.ph-art{position:absolute;z-index:0;inset:0 0 0 38%;pointer-events:none}
.ph-art img{width:100%;height:100%;object-fit:cover;object-position:70% 45%;filter:brightness(1.03)}
.ph-art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 12%,rgba(255,255,255,.4) 38%,rgba(255,255,255,0) 70%)}
.ph-edition{position:relative;z-index:1;display:flex;align-items:center;gap:14px;margin:0 0 20px;color:#657083;font:700 .56rem var(--mono);letter-spacing:.16em}
.ph-edition span:first-child::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:9px;vertical-align:1px}
.ph-edition i{font-style:normal;color:#A9AFBA}
.ph-edition span:last-child{color:var(--blue)}
.page-hero .lead{max-width:36em}
.ph-index{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:26px}
.ph-index-label{font:700 .56rem var(--mono);letter-spacing:.14em;color:var(--mute);margin-right:4px}
.ph-index a{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border:1px solid var(--bord);border-radius:999px;background:rgba(255,255,255,.92);color:var(--navy);font-size:.76rem;font-weight:700;text-decoration:none;transition:border-color .2s,color .2s,background .2s}
.ph-index a span{font:700 .6rem var(--mono);color:var(--blue)}
.ph-index a:hover{border-color:var(--blue);color:var(--blue);background:#fff}
main section[id],main .sec-head[id]{scroll-margin-top:104px}
@media (max-width:900px){.ph-art{inset:auto 0 0 30%;top:0}.ph-art::after{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 10%,rgba(255,255,255,.85) 45%,rgba(255,255,255,.55) 100%)}}
@media (max-width:620px){.ph-art{display:none}.ph-edition{flex-wrap:wrap;gap:6px;font-size:.48rem}.ph-index a{font-size:.72rem;padding:6px 12px}}

/* ---------- HTMLサイトマップ（sitemap.html） ---------- */
.sitemap-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--bord)}
.sitemap-list li{border-bottom:1px solid var(--bord)}
.sitemap-list a{display:flex;align-items:baseline;gap:14px;padding:16px 8px;text-decoration:none;color:var(--ink);font-weight:700;transition:background .2s,color .2s}
.sitemap-list a:hover{background:var(--wash);color:var(--blue)}
.sitemap-list a::after{content:"→";margin-left:auto;font-family:var(--mono);color:var(--blue)}
.sitemap-list small{font-weight:400;color:var(--mute);font-size:.78rem}
.sitemap-list .lv2 a{padding-left:36px}
.sitemap-list .lv2 a::before{content:"└";color:var(--mute);font-family:var(--mono);margin-right:2px}
.sitemap-list .plain{display:flex;align-items:baseline;gap:14px;padding:16px 8px;color:var(--mute);font-weight:700}
.sitemap-list .plain small{font-weight:400;font-size:.78rem}
