/*
 * 学校ガイド共通ヘッダー・フッター
 * HTMLは scripts/templates/common_header.html.j2 と common_footer.html.j2 を正本とし、
 * scripts/sync_navigation.py で全ページへ同期する。
 */
header.site{
  position:sticky;
  top:0;
  z-index:40;
  background:#fff;
  border-bottom:1px solid var(--line, #dce9df);
}
header.site .wrap{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  height:74px;
  max-width:1180px;
}
header.site .brand{display:flex;align-items:center;min-width:0;}
header.site .brand-logo{
  display:flex;
  align-items:center;
  flex:none;
  padding:5px 0;
  text-decoration:none;
}
header.site .brand-logo img{
  display:block;
  width:201px;
  height:auto;
  max-height:55px;
  object-fit:contain;
}
header.site .gnav{
  display:flex;
  align-items:stretch;
  gap:24px;
  margin-left:auto;
  flex:none;
  font-size:13.5px;
}
header.site .gnav a{
  position:relative;
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--sub, #64736a);
  text-decoration:none;
  white-space:nowrap;
}
header.site .gnav a.on{
  color:var(--accent-d, #2d6e3f);
  font-weight:700;
}
header.site .gnav a.on::after{
  content:"";
  position:absolute;
  right:0;
  bottom:17px;
  left:24px;
  height:2px;
  border-radius:2px;
  background:var(--accent, #3f8a59);
}
header.site .nav-toggle{display:none;}

footer.site{
  background:#465b6b;
  color:#d6dee4;
  padding:38px 0 22px;
  font-size:12px;
  text-align:left;
}
footer.site .wrap{max-width:1180px;}
footer.site .footer-wrap{display:block;}
footer.site .footer-main{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(240px,1.05fr);
  gap:48px;
  padding-bottom:28px;
}
footer.site .footer-links{
  display:grid;
  grid-template-columns:1.35fr 1fr;
  gap:34px;
}
footer.site .footer-group b{
  display:block;
  color:#fff;
  font-size:13px;
  margin-bottom:11px;
  letter-spacing:.04em;
}
footer.site .footer-group .fg-logo img{
  display:block;
  width:180px;
  height:auto;
  opacity:.96;
}
footer.site .foot-menu{
  display:flex;
  justify-content:flex-start;
}
footer.site .guide-menu{
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
footer.site .foot-menu-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 18px;
}
footer.site .footer-group.contact .foot-menu{
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
footer.site .footer-brand{max-width:330px;}
footer.site .footer-brand p{
  margin-top:0;
  color:#d2dce3;
  line-height:1.8;
}
footer.site .footer-home-link{
  display:inline-block;
  margin-top:10px;
  color:#ffe08a;
  font-weight:700;
}
footer.site .footer-manatera-logo{
  display:block;
  margin-top:18px;
  width:170px;
}
footer.site .footer-manatera-logo img{
  display:block;
  width:170px;
  height:auto;
  opacity:.96;
}
footer.site a{color:#eef3f6;text-decoration:none;}
footer.site a:hover{text-decoration:underline;}
footer.site .request-link{color:#f4f8d8;font-weight:700;}
footer.site .school-link{color:#ffe08a;font-weight:700;}
footer.site .footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.14);
  color:#aebcc6;
  font-size:11px;
}
footer.site .footer-legal-link{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}

@media(max-width:980px) and (min-width:681px){
  header.site .brand-logo img{width:179px;}
  header.site .gnav{gap:14px;font-size:13px;}
  header.site .gnav a svg{display:none;}
  header.site .gnav a.on::after{left:0;}
}
@media(max-width:980px){
  footer.site .footer-main{grid-template-columns:1fr;gap:30px;}
}
@media(max-width:680px){
  header.site .wrap{
    position:relative;
    height:62px;
    padding:0 18px;
    align-items:stretch;
  }
  header.site .brand-logo img{width:166px;max-height:46px;}
  header.site .nav-toggle{
    display:flex;
    flex:none;
    flex-direction:column;
    align-self:center;
    justify-content:center;
    gap:5px;
    width:44px;
    height:44px;
    padding:10px;
    border:0;
    background:none;
    cursor:pointer;
  }
  header.site .nav-toggle span{
    display:block;
    height:2px;
    border-radius:2px;
    background:var(--accent-d, #2d6e3f);
    transition:transform .25s,opacity .25s;
  }
  header.site .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  header.site .nav-toggle.open span:nth-child(2){opacity:0;}
  header.site .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  header.site .gnav{
    display:none;
    position:absolute;
    top:100%;
    right:0;
    left:0;
    z-index:30;
    flex-direction:column;
    gap:0;
    padding:6px 0 10px;
    border-bottom:1px solid var(--line, #dce9df);
    background:#fff;
    box-shadow:0 18px 30px rgba(30,63,42,.12);
  }
  header.site .gnav.open{display:flex;}
  header.site .gnav a{
    padding:13px 24px;
    border-bottom:1px solid #f0f5f1;
    font-size:14px;
  }
  header.site .gnav a.on::after{display:none;}
  footer.site{padding-top:30px;}
  footer.site .footer-links{grid-template-columns:1fr;gap:24px;}
  footer.site .foot-menu-row{gap:9px 14px;}
  footer.site .footer-bottom{display:block;line-height:1.8;}
}
