/* =========================================================
   VISUAL ACADEMIC FOOTER v91
   Synchronized with site content width and typography.
   No duplicate navigation, no email block, no research keywords.
   ========================================================= */

.site-footer{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border-top:1px solid var(--line)!important;
  background:color-mix(in srgb,var(--surface) 48%,var(--bg))!important;
  color:var(--muted)!important;
}

.site-footer::before,
.site-footer::after{
  content:none!important;
  display:none!important;
}

.footer-academic{
  width:min(var(--max),calc(100% - 40px));
  margin:0 auto;
}

.footer-academic-main{
  min-height:78px;
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto;
  align-items:center;
  gap:38px;
  padding:16px 0 13px;
}

.footer-profile{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}

.site-footer .footer-name{
  font-family:Georgia,"Times New Roman",serif;
  font-size:.94rem!important;
  line-height:1.28!important;
  font-weight:700;
  letter-spacing:.002em;
  color:var(--primary2);
}

.footer-role{
  font-size:.73rem;
  line-height:1.45;
  color:var(--muted);
}

.footer-visual{
  width:290px;
  max-width:34vw;
  height:54px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  opacity:.86;
}

.footer-visual svg{
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
}

.footer-visual .fv-raster rect,
.footer-visual .fv-map path:first-child{
  fill:color-mix(in srgb,var(--surface) 76%,transparent);
  stroke:color-mix(in srgb,var(--primary2) 52%,var(--line));
  stroke-width:1.15;
}

.footer-visual .fv-raster path,
.footer-visual .fv-map path:not(:first-child){
  fill:none;
  stroke:color-mix(in srgb,var(--muted) 56%,var(--line));
  stroke-width:1;
}

.footer-visual .fv-raster circle,
.footer-visual .fv-network circle,
.footer-visual .fv-target{
  fill:var(--accent);
  stroke:color-mix(in srgb,var(--bg) 88%,transparent);
  stroke-width:1;
}

.footer-visual .fv-network path{
  fill:none;
  stroke:color-mix(in srgb,var(--primary2) 62%,var(--line));
  stroke-width:1.15;
}

.footer-visual .fv-flow,
.footer-visual .fv-arrow{
  fill:none;
  stroke:color-mix(in srgb,var(--accent) 56%,var(--line));
  stroke-width:1.05;
}

.footer-visual .fv-route{
  stroke:var(--accent)!important;
  stroke-width:1.35!important;
  stroke-dasharray:3 2;
}

.footer-visual .fv-spark circle{
  fill:color-mix(in srgb,var(--accent) 72%,transparent);
}

.footer-academic-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:8px 0 11px;
  border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  font-size:.65rem;
  line-height:1.4;
  color:color-mix(in srgb,var(--muted) 86%,transparent);
}

@media (max-width:900px){
  .footer-academic-main{
    gap:24px;
  }

  .footer-visual{
    width:240px;
    max-width:38vw;
  }
}

@media (max-width:700px){
  .footer-academic{
    width:calc(100% - 32px);
  }

  .footer-academic-main{
    min-height:0;
    display:block;
    padding:15px 0 12px;
  }

  .footer-visual{
    width:235px;
    max-width:100%;
    margin-top:12px;
    justify-content:flex-start;
  }

  .footer-academic-meta{
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:4px 14px;
    padding-bottom:11px;
  }
}

@media (max-width:430px){
  .footer-visual{
    width:210px;
  }

  .footer-academic-meta{
    display:block;
  }

  .footer-academic-meta span{
    display:block;
  }

  .footer-academic-meta span+span{
    margin-top:3px;
  }
}

@media print{
  .site-footer{display:none!important}
}
