@charset "UTF-8";

/* Footer only. Keep the supplied transparent footer logo unchanged. */
#footer { position: relative; isolation: isolate; overflow: clip; padding: 0; color: #fff; background: linear-gradient(115deg, #071d3c 0%, #0c315b 58%, #104879 100%); }
#footer .footer-backdrop { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }
#footer::after { content: ""; position: absolute; top: 30px; right: 24px; z-index: -1; width: 78px; height: 54px; background: radial-gradient(circle, #42a7f6 1.5px, transparent 2px) 0 0 / 18px 18px; opacity: .25; pointer-events: none; }
#footer .footer-inner { width: min(1320px, calc(100% - 80px)); margin-inline: auto; padding-block: 64px 28px; }
#footer .footer-columns { display: grid; grid-template-columns: minmax(285px, 1.1fr) minmax(180px, .8fr) minmax(272px, 1.1fr) minmax(180px, .75fr); align-items: start; gap: 36px; }
#footer .footer-company { min-width: 0; }
#footer .footer-brand { display: block; width: 210px; max-width: 100%; }
#footer .footer-logo { display: block; width: 100%; height: auto; padding: 0; border-radius: 0; background: transparent; }
#footer .footer-company-name { margin-top: 12px; font-size: 16px; line-height: 1.8; }
#footer .footer-cybozu-partner-logo { display: block; width: 150px; height: auto; max-width: 100%; margin-top: 20px; }
#footer .footer-nav { min-width: 0; }
#footer .footer-nav-title { margin: 0 0 12px; color: #fff; font-size: 20px; font-weight: 700; line-height: 1.5; letter-spacing: 0; overflow-wrap: normal; }
#footer .footer-nav-title span { display: inline-block; }
#footer .footer-nav ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
#footer .footer-nav a, #footer .footer-link-unavailable { display: flex; align-items: center; min-height: 48px; padding-block: 10px; color: #fff; font-size: 16px; line-height: 1.75; text-decoration: none; overflow-wrap: anywhere; }
#footer .footer-link-unavailable { color: #d8e6f4; cursor: default; }
#footer .footer-bottom { display: flex; align-items: center; justify-content: center; margin-top: 40px; padding-top: 16px; }
#footer .footer-copyright { display: block; color: #e5eef7; font-size: 15px; line-height: 1.8; text-align: center; }
#footer a:hover { color: #ffcf24; text-decoration: underline; text-underline-offset: 5px; }
#footer a:focus-visible { outline: 3px solid #ffcf24; outline-offset: 5px; border-radius: 2px; }

@media (max-width: 1199px) {
  #footer .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 40px; }
}

@media (max-width: 600px) {
  #footer .footer-backdrop { left: 50%; width: 1100px; max-width: none; transform: translateX(-50%); opacity: .7; }
  #footer .footer-inner { width: calc(100% - 40px); padding-block: 44px 28px; }
  #footer .footer-columns { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  #footer .footer-brand { width: 184px; }
  #footer .footer-company-name { margin-top: 8px; font-size: 15px; }
  #footer .footer-cybozu-partner-logo { width: 132px; }
  #footer .footer-page-nav ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  #footer .footer-bottom { margin-top: 24px; padding-top: 8px; }
}

@media (max-width: 359px) {
  #footer .footer-page-nav ul { grid-template-columns: minmax(0, 1fr); }
}
