/* ========================================
   site-header-footer.css
   ZERO POINT FIELD 共通ヘッダー・フッター
======================================== */

html {
  margin-top: 0 !important;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family:
    "Noto Sans JP",
    "DM Sans",
    "Hiragino Sans",
    "Hiragino Kaku Gothic ProN",
    "Yu Gothic",
    "Meiryo",
    sans-serif;
  color: #1f2d3a;
  background: #ffffff;
}

#page.site {
  min-height: 100vh;
}

/* ========================================
   Header
======================================== */
#zpf-navbar {
  background: rgba(31, 45, 58, 0.18);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

#zpf-navbar.is-scrolled {
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid #e9edf2;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

#zpf-navbar .zpf-navlink {
  position: relative;
  text-decoration: none;
}

#zpf-navbar .zpf-navlink::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 100%;
  height: 2px;
  background: rgba(255, 255, 255, 0.9);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.25s ease, background 0.25s ease;
}

#zpf-navbar .zpf-navlink:hover::after {
  transform: scaleX(1);
}

/* スクロール後のPCメニュー文字色 */
#zpf-navbar.is-scrolled .zpf-navlink {
  color: #5b6b7a !important;
}

#zpf-navbar.is-scrolled .zpf-navlink:hover {
  color: #1f2d3a !important;
}

#zpf-navbar.is-scrolled .zpf-navlink::after {
  background: rgba(31, 45, 58, 0.85);
}

/* ロゴ */
#zpf-logo-image {
  display: block;
}

/* スクロール後はロゴの白飛び感を抑える */
#zpf-navbar.is-scrolled #zpf-logo-image {
  filter: none;
}

/* CTA */
#zpf-nav-cta {
  text-decoration: none;
}

#zpf-navbar.is-scrolled #zpf-nav-cta {
  background: #1f2d3a;
  color: #ffffff;
  border: 1px solid #1f2d3a;
}

#zpf-navbar.is-scrolled #zpf-nav-cta:hover {
  background: #2d3f50;
  color: #ffffff;
  border-color: #2d3f50;
}

/* モバイルトグル */
#zpf-menu-toggle {
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}

#zpf-navbar.is-scrolled #zpf-menu-toggle {
  color: #1f2d3a;
}

#zpf-mobile-menu {
  display: none;
}

#zpf-mobile-menu.is-open {
  display: flex;
}

/* ========================================
   Footer
======================================== */
.zpf-footer-brand {
  flex: 0 0 auto;
}

.zpf-footer-brand a {
  display: inline-block;
  text-decoration: none;
}

.zpf-footer-brand img {
  display: block;
  width: 150px;
  max-width: 100%;
  height: auto;
}

footer a {
  text-decoration: none;
}

footer a:hover {
  text-decoration: none;
}

/* ========================================
   Back to top
======================================== */
#zpf-back-to-top.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}

/* ========================================
   共通余白微調整
======================================== */
body.admin-bar #zpf-navbar {
  top: 32px;
}

@media (max-width: 782px) {
  body.admin-bar #zpf-navbar {
    top: 46px;
  }
}

/* ========================================
   スマホ調整
======================================== */
@media (max-width: 767px) {
  #zpf-navbar .max-w-7xl {
    padding-top: 14px;
    padding-bottom: 14px;
  }

  #zpf-logo-image {
    height: 42px !important;
  }

  .zpf-footer-brand img {
    width: 130px;
  }
}