/* FoZoWo shared footer — rebuilt brand system / 2026-11-10 */
.fz-footer,
.fz-footer * { box-sizing: border-box; }
.fz-footer {
  --fz-footer-bg: #111a2e;
  --fz-footer-panel: #18243b;
  --fz-footer-panel-hover: #22314d;
  --fz-footer-text: #f5f7fb;
  --fz-footer-muted: #b8c2d4;
  --fz-footer-soft: #8795ad;
  display: block;
  position: relative;
  isolation: isolate;
  width: 100%;
  margin: 0;
  padding: 0;
  color: var(--fz-footer-text) !important;
  background: var(--fz-footer-bg) !important;
  background-color: var(--fz-footer-bg) !important;
  background-image: none !important;
  border: 0 !important;
  border-top: 0 !important;
  font-family: Inter, "Noto Sans JP", "Yu Gothic UI", Meiryo, system-ui, sans-serif;
  overflow: hidden;
  animation: none !important;
  transition: none !important;
  box-shadow: none !important;
}
.fz-footer-colorbar {
  height: 4px;
  width: 100%;
  background: linear-gradient(90deg, #26a7ed 0%, #4b70e8 27%, #9163d9 52%, #e35d9a 76%, #f2a14b 100%) !important;
  background-color: transparent !important;
}
.fz-footer-inner {
  width: min(1240px, calc(100% - 64px));
  margin: 0 auto;
  background: transparent !important;
}
.fz-footer-brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  padding: 42px 0 36px;
  border-bottom: 1px solid rgba(218,228,245,.14) !important;
  background: transparent !important;
}
.fz-footer-brand-area { min-width: 0; max-width: 600px; }
.fz-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-decoration: none;
  font-size: 26px;
  line-height: 1.1;
  font-weight: 850;
  letter-spacing: -.045em;
}
.fz-footer-brand img {
  display: block;
  width: 38px;
  height: 38px;
  object-fit: contain;
  border: 0 !important;
  border-radius: 9px;
  background: transparent !important;
  filter: none !important;
}
.fz-footer-official-tag {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
  min-height: 22px;
  margin-left: 12px;
  padding: 4px 9px;
  color: #c6d8ff !important;
  -webkit-text-fill-color: #c6d8ff !important;
  background: rgba(80,135,230,.17) !important;
  border: 1px solid rgba(125,164,245,.25) !important;
  border-radius: 999px;
  font: 700 9px/1 Arial, sans-serif;
  letter-spacing: .12em;
}
.fz-footer-tagline {
  margin: 16px 0 6px;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-size: 17px;
  line-height: 1.65;
  font-weight: 750;
  letter-spacing: .01em;
}
.fz-footer-description {
  max-width: 560px;
  margin: 0;
  color: var(--fz-footer-muted) !important;
  -webkit-text-fill-color: var(--fz-footer-muted) !important;
  font-size: 12px;
  line-height: 1.9;
}
.fz-footer-feature-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 10px;
  width: min(440px, 42%);
}
.fz-footer-feature {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 90px;
  padding: 15px 36px 14px 16px;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-decoration: none;
  background: rgba(255,255,255,.055) !important;
  border: 1px solid rgba(220,231,250,.15) !important;
  border-radius: 12px;
  box-shadow: none !important;
  overflow: hidden;
}
.fz-footer-feature-primary { background: linear-gradient(135deg, rgba(47,126,226,.25), rgba(83,94,205,.18)) !important; border-color: rgba(107,157,240,.35) !important; }
.fz-footer-feature-kicker { color: #9dbbff !important; -webkit-text-fill-color: #9dbbff !important; font: 800 9px/1.2 Arial,sans-serif; letter-spacing: .12em; }
.fz-footer-feature strong { color: #fff !important; -webkit-text-fill-color: #fff !important; font-size: 13px; line-height: 1.5; font-weight: 750; }
.fz-footer-feature-arrow { position: absolute; right: 13px; top: 14px; color: #9dbbff !important; -webkit-text-fill-color: #9dbbff !important; font: 18px/1 Arial,sans-serif; }
.fz-footer-main-grid {
  display: grid;
  grid-template-columns: minmax(140px, .95fr) minmax(145px, .95fr) minmax(270px, 1.75fr) minmax(175px, 1.05fr);
  gap: 32px;
  padding: 34px 0 36px;
  background: transparent !important;
}
.fz-footer-column,
.fz-footer-column * { box-sizing: border-box; }
.fz-footer-column { min-width: 0; background: transparent !important; }
.fz-footer-column h2 {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 17px;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 800;
  letter-spacing: .045em;
}
.fz-footer-heading-dot { display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; }
.fz-dot-blue { background: #49aaf2 !important; }
.fz-dot-violet { background: #9b7bea !important; }
.fz-dot-pink { background: #e875b1 !important; }
.fz-dot-orange { background: #f4a65b !important; }
.fz-footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.fz-footer-links a {
  display: inline-block;
  color: #c0cadb !important;
  -webkit-text-fill-color: #c0cadb !important;
  text-decoration: none;
  font-size: 12px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.fz-footer-links a:hover,
.fz-footer-links a:focus-visible { color: #fff !important; -webkit-text-fill-color: #fff !important; text-decoration: underline; text-decoration-color: #75a6ff; text-underline-offset: 4px; }
.fz-footer-column-note { margin: -7px 0 12px; color: #9caac1 !important; -webkit-text-fill-color: #9caac1 !important; font-size: 10px; line-height: 1.7; }
.fz-footer-social-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.fz-footer-social-link {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 46px;
  padding: 7px 8px;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-decoration: none;
  background: rgba(255,255,255,.055) !important;
  border: 1px solid rgba(218,228,245,.11) !important;
  border-radius: 9px;
  box-shadow: none !important;
  outline-offset: 3px;
}
.fz-footer-social-link:hover,
.fz-footer-social-link:focus-visible { background: rgba(255,255,255,.11) !important; border-color: rgba(150,185,255,.5) !important; text-decoration: none; }
.fz-footer-social-icon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #27354f !important;
  border-radius: 8px;
  overflow: hidden;
}
.fz-footer-social-icon svg { display: block; width: 16px; height: 16px; fill: currentColor !important; color: #fff !important; background: transparent !important; }
.fz-social-x .fz-footer-social-icon { background: #050505 !important; }
.fz-social-instagram .fz-footer-social-icon { background: linear-gradient(135deg,#f9ce34 0%,#ee2a7b 48%,#6228d7 100%) !important; }
.fz-social-youtube .fz-footer-social-icon { background: #ff0033 !important; }
.fz-social-tiktok .fz-footer-social-icon { background: #050505 !important; }
.fz-social-facebook .fz-footer-social-icon { background: #0866ff !important; }
.fz-social-threads .fz-footer-social-icon { background: #252525 !important; }
.fz-social-pinterest .fz-footer-social-icon { background: #e60023 !important; }
.fz-footer-social-copy { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.fz-footer-social-copy strong { color: #f7f9fd !important; -webkit-text-fill-color: #f7f9fd !important; font-size: 10px; line-height: 1.25; font-weight: 750; }
.fz-footer-social-copy small { color: #9eacc2 !important; -webkit-text-fill-color: #9eacc2 !important; font-size: 9px; line-height: 1.2; overflow-wrap: anywhere; }
.fz-footer-social-arrow { margin-left: auto; color: #7086a7 !important; -webkit-text-fill-color: #7086a7 !important; font: 11px/1 Arial,sans-serif; }
.fz-footer-contact-card { display: flex; flex-direction: column; gap: 6px; margin-top: 18px; padding: 12px; background: rgba(255,255,255,.055) !important; border: 1px solid rgba(218,228,245,.12) !important; border-radius: 10px; }
.fz-footer-contact-label { color: #95b8ff !important; -webkit-text-fill-color: #95b8ff !important; font: 800 9px/1.4 Arial,sans-serif; letter-spacing: .1em; }
.fz-footer-contact-card a { color: #fff !important; -webkit-text-fill-color: #fff !important; font-size: 11px; font-weight: 750; text-decoration: none; overflow-wrap: anywhere; }
.fz-footer-contact-card > span:last-child { color: #9eacc2 !important; -webkit-text-fill-color: #9eacc2 !important; font-size: 9px; line-height: 1.7; }
.fz-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  min-height: 58px;
  padding: 14px 0;
  color: #9eacc2 !important;
  background: transparent !important;
  border-top: 1px solid rgba(218,228,245,.14) !important;
  font: 10px/1.6 Arial,sans-serif;
}
.fz-footer-bottom-brand, .fz-footer-bottom-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.fz-footer-bottom-brand strong { color: #fff !important; -webkit-text-fill-color: #fff !important; font-size: 11px; }
.fz-footer-bottom-brand > span:last-child { color: #9eacc2 !important; -webkit-text-fill-color: #9eacc2 !important; }
.fz-footer-mini-mark { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 6px; color: #fff !important; -webkit-text-fill-color: #fff !important; background: linear-gradient(135deg,#238fe4,#8160d9 55%,#e46ca0) !important; font: 900 11px/1 Arial,sans-serif; }
.fz-footer-bottom-meta { color: #9eacc2 !important; -webkit-text-fill-color: #9eacc2 !important; }
/* High-specificity bridge: the site's old white-background lock must not recolor the footer. */
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer * {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
  background-color: transparent !important;
  background-image: none !important;
}
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer { background: #111a2e !important; background-color: #111a2e !important; background-image: none !important; color: #f5f7fb !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-colorbar { background: linear-gradient(90deg,#26a7ed,#4b70e8,#9163d9,#e35d9a,#f2a14b) !important; background-color: transparent !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-feature,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-social-link,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-contact-card { background: rgba(255,255,255,.055) !important; border-color: rgba(218,228,245,.15) !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-feature-primary { background: linear-gradient(135deg,rgba(47,126,226,.25),rgba(83,94,205,.18)) !important; border-color: rgba(107,157,240,.35) !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-social-icon { color: #fff !important; background: #27354f !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-social-x .fz-footer-social-icon,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-social-tiktok .fz-footer-social-icon,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-social-threads .fz-footer-social-icon { background: #050505 !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-social-instagram .fz-footer-social-icon { background: linear-gradient(135deg,#f9ce34 0%,#ee2a7b 48%,#6228d7 100%) !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-social-youtube .fz-footer-social-icon { background: #ff0033 !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-social-facebook .fz-footer-social-icon { background: #0866ff !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-social-pinterest .fz-footer-social-icon { background: #e60023 !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-mini-mark { background: linear-gradient(135deg,#238fe4,#8160d9 55%,#e46ca0) !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-brand,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-tagline,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-column h2,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-social-copy strong,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-feature strong,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-contact-card a { color: #fff !important; -webkit-text-fill-color: #fff !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-description,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-links a,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-column-note,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-contact-card > span:last-child,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-bottom,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-social-copy small { color: #bdc8da !important; -webkit-text-fill-color: #bdc8da !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-official-tag,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-feature-kicker,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-feature-arrow,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-contact-label { color: #9dbbff !important; -webkit-text-fill-color: #9dbbff !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-brand-row,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-bottom { border-color: rgba(218,228,245,.14) !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-feature,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-social-link,
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-contact-card { border: 1px solid rgba(218,228,245,.15) !important; }
html body #footerRoot#footerRoot#footerRoot#footerRoot#footerRoot .fz-footer .fz-footer-social-icon svg { background: transparent !important; color: #fff !important; fill: currentColor !important; }
/* Footer never animates; the site-wide no-motion requirement remains in place. */
.fz-footer, .fz-footer *, .fz-footer *::before, .fz-footer *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
@media (max-width: 1050px) {
  .fz-footer-inner { width: min(100% - 48px, 900px); }
  .fz-footer-main-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 30px 34px; }
  .fz-footer-social-column { grid-column: 1 / -1; }
  .fz-footer-social-list { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .fz-footer-inner { width: calc(100% - 36px); }
  .fz-footer-brand-row { align-items: flex-start; flex-direction: column; gap: 22px; padding: 30px 0 25px; }
  .fz-footer-feature-links { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fz-footer-main-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 27px 20px; padding: 27px 0 28px; }
  .fz-footer-social-column { grid-column: 1 / -1; }
  .fz-footer-social-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
  .fz-footer-bottom { align-items: flex-start; flex-direction: column; gap: 9px; padding: 15px 0; }
}
@media (max-width: 390px) {
  .fz-footer-inner { width: calc(100% - 28px); }
  .fz-footer-main-grid { gap: 23px 14px; }
  .fz-footer-feature { min-height: 84px; padding: 12px 29px 12px 12px; }
  .fz-footer-social-link { gap: 7px; padding: 7px 6px; }
  .fz-footer-social-icon { width: 26px; height: 26px; flex-basis: 26px; }
  .fz-footer-social-copy strong { font-size: 9px; }
  .fz-footer-social-copy small { font-size: 8px; }
}
/* Site-wide motion remains disabled: no animation and no startup overlay. */
html, body, *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
.boot-screen, #bootScreen, .splash-screen, #splashScreen, .startup-screen, #startupScreen, .preloader, #preloader, .page-loader, #pageLoader, .loading-screen, #loadingScreen { display:none !important; visibility:hidden !important; opacity:0 !important; pointer-events:none !important; animation:none !important; transition:none !important; }
.reveal, .fx-reveal, .scroll-reveal, .will-reveal, [data-reveal] { opacity:1 !important; visibility:visible !important; transform:none !important; filter:none !important; }
#spaceCanvas, .fx-pointer-glow, .fx-ripple { display:none !important; }
