/* Ohanae global footer — Pearl White / Silver | official red #BF2E1A */
#footer.ohanae-footer {
  --of-red:#bf2e1a; --of-navy:#14253d; --of-ink:#526176; --of-border:#dbe3eb;
  position:relative; isolation:isolate; overflow:hidden; clear:both;
  margin:0; padding:0; font-size:16px; color:var(--of-ink);
  background:linear-gradient(180deg,#fff 0%,#f9fafc 48%,#f1f4f8 100%);
  border-top:1px solid #e3e9ef;
}
#footer.ohanae-footer *,#footer.ohanae-footer *::before,#footer.ohanae-footer *::after{box-sizing:border-box}
#footer .ohanae-footer-art{position:absolute;left:0;right:0;bottom:0;top:auto;width:100%;height:clamp(210px,27vw,340px);z-index:0;pointer-events:none;opacity:.8}
#footer .ohanae-footer-inner{width:min(100% - 48px,1240px);margin:0 auto;position:relative;z-index:1}
#footer .ohanae-footer-top{display:grid;grid-template-columns:minmax(290px,1.5fr) repeat(2,minmax(180px,1fr));column-gap:clamp(30px,6vw,110px);row-gap:30px;padding:60px 0 42px}
#footer .ohanae-footer-column h2{font-size:20px;line-height:1.3;font-weight:600;letter-spacing:-.015em;color:var(--of-navy);margin:0 0 24px}
#footer .ohanae-footer-column ul{list-style:none;margin:0;padding:0}
#footer .ohanae-footer-column li{margin:0 0 14px;padding:0;font-size:16px;line-height:1.65}
#footer .ohanae-footer-column a{color:var(--of-ink);text-decoration:none;transition:color .25s ease}
#footer .ohanae-footer-column a:hover,#footer .ohanae-footer-column a:focus-visible{color:var(--of-red);text-decoration:underline;text-underline-offset:4px}
#footer .ohanae-footer-contact li{display:flex;align-items:flex-start;gap:17px}
#footer .ohanae-footer-contact li>i{width:17px;flex:0 0 17px;color:var(--of-red);font-size:16px;line-height:26px}
#footer .ohanae-footer-social{border-top:1px solid var(--of-border);border-bottom:1px solid var(--of-border);padding:27px 0;display:flex;justify-content:center;align-items:center;gap:38px}
#footer .ohanae-footer-social-label{font-size:16px;color:#6c7b8e}
#footer .ohanae-footer-social-links{display:flex;align-items:center;gap:10px}
#footer .ohanae-footer-social-links a{display:flex;align-items:center;justify-content:center;width:43px;height:43px;border:1px solid transparent;border-radius:50%;color:var(--of-navy);font-size:20px;text-decoration:none;transition:color .25s,background .25s,border-color .25s,transform .25s}
#footer .ohanae-footer-social-links a:hover,#footer .ohanae-footer-social-links a:focus-visible{color:var(--of-red);background:#fff;border-color:#dbe3eb;transform:translateY(-2px)}
#footer .ohanae-footer-x{font-size:23px;font-weight:400}
#footer .ohanae-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:27px 0 42px;font-size:14px;color:#6b798b}
#footer .ohanae-footer-copyright p{font-size:14px;color:inherit;margin:0}
#footer .ohanae-footer-disclaimer{color:var(--of-red);text-decoration:none;font-size:14px;white-space:nowrap}
#footer .ohanae-footer-disclaimer:hover,#footer .ohanae-footer-disclaimer:focus-visible{text-decoration:underline;text-underline-offset:4px;color:#912314}
#footer .ohanae-footer-disclaimer i{margin-left:7px;font-size:11px}
#footer .of-signal{stroke-dasharray:9 15;animation:of-flow 26s linear infinite}
#footer .of-node{transform-box:fill-box;transform-origin:center;animation:of-pulse 5s ease-in-out infinite}
#footer .of-node-delay{animation-delay:2.5s}
@keyframes of-flow{to{stroke-dashoffset:-240}}
@keyframes of-pulse{0%,100%{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}
@media(max-width:800px){#footer .ohanae-footer-top{grid-template-columns:repeat(2,minmax(0,1fr));padding:52px 0 32px;gap:28px}#footer .ohanae-footer-contact{grid-column:1/-1}}
@media(max-width:520px){#footer .ohanae-footer-inner{width:calc(100% - 40px)}#footer .ohanae-footer-top{gap:26px 20px;padding:42px 0 26px}#footer .ohanae-footer-column h2{font-size:18px;margin-bottom:14px}#footer .ohanae-footer-column li{font-size:15px}#footer .ohanae-footer-social{flex-direction:column;gap:12px;padding:21px 0}#footer .ohanae-footer-social-links{gap:5px}#footer .ohanae-footer-bottom{flex-direction:column;text-align:center;gap:10px;padding:22px 0 30px}#footer .ohanae-footer-art{opacity:.35}}
@media(prefers-reduced-motion:reduce){#footer .of-signal,#footer .of-node{animation:none}#footer .ohanae-footer-social-links a{transition:none}}

/* Footer-only overrides to protect this component from legacy theme styles. */
#footer.ohanae-footer .ohanae-footer-column h2{color:#14253d}
#footer.ohanae-footer .ohanae-footer-column a:not(.btn){color:#526176}
#footer.ohanae-footer .ohanae-footer-column a:not(.btn):hover{color:#bf2e1a}
#footer.ohanae-footer .ohanae-footer-disclaimer{color:#bf2e1a!important}
#footer.ohanae-footer .ohanae-footer-inner{z-index:2}
#footer.ohanae-footer .ohanae-footer-bottom{min-height:80px}
#footer.ohanae-footer .ohanae-footer-social-links a{color:#14253d!important}
#footer.ohanae-footer .ohanae-footer-social-links a:hover{color:#bf2e1a!important}
@media(max-width:520px){#footer.ohanae-footer .ohanae-footer-art{height:180px;opacity:.35}}

/* 2026 footer refinement: consistent width, centered copyright, reliable icon */
#footer.ohanae-footer .ohanae-footer-inner {
  width: calc(100% - 48px);
  max-width: 1240px;
  margin-inline: auto;
}
#footer.ohanae-footer .ohanae-footer-top {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(24px, 5vw, 80px);
}
#footer.ohanae-footer .ohanae-footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  justify-content: initial;
  gap: 12px;
}
#footer.ohanae-footer .ohanae-footer-copyright {
  grid-column: 2;
  text-align: center;
  white-space: normal;
}
#footer.ohanae-footer .ohanae-footer-disclaimer {
  grid-column: 3;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
#footer.ohanae-footer .ohanae-footer-external-icon {
  display: block;
  flex: none;
  width: 15px;
  height: 15px;
  stroke: currentColor;
}
@media (max-width: 800px) {
  #footer.ohanae-footer .ohanae-footer-top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #footer.ohanae-footer .ohanae-footer-contact { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  #footer.ohanae-footer .ohanae-footer-inner { width: calc(100% - 40px); }
  #footer.ohanae-footer .ohanae-footer-top { grid-template-columns: minmax(0, 1fr); }
  #footer.ohanae-footer .ohanae-footer-contact { grid-column: auto; }
  #footer.ohanae-footer .ohanae-footer-bottom {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    gap: 12px;
  }
  #footer.ohanae-footer .ohanae-footer-disclaimer { justify-self: auto; }
}

/* Global scroll-to-top: independent of footer artwork and layout */
html a.scroll-to-top.hidden-mobile {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1040;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  min-width: 0;
  padding: 0;
  border: 1px solid rgba(191,46,26,.22);
  border-radius: 12px;
  background: #ffffff;
  color: #bf2e1a;
  box-shadow: 0 8px 28px rgba(20,37,61,.14);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease, background .2s ease, color .2s ease;
  text-decoration: none;
}
html a.scroll-to-top.hidden-mobile.visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
html a.scroll-to-top.hidden-mobile:hover,
html a.scroll-to-top.hidden-mobile:focus-visible {
  background: #bf2e1a;
  color: #fff;
}
@media (max-width: 767px) {
  html a.scroll-to-top.hidden-mobile,
  html a.scroll-to-top.hidden-mobile.visible { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  html a.scroll-to-top.hidden-mobile { transition: none; }
}
