/* the header menu and the drawn □, shared by the top page and the lower pages */
.bx{display:inline-block;width:.86em;height:.86em;border:.11em solid currentColor;border-radius:.1em;vertical-align:-.08em}
.gn{display:none}
@media (min-width:1000px){
  #menuBtn{display:none}
  .gn{display:flex;align-items:center;gap:clamp(14px,2.2vw,30px);font-family:'Zen Kaku Gothic New','Hiragino Sans','Yu Gothic','Meiryo',sans-serif;font-weight:700;font-size:15px;margin-left:auto;margin-right:18px}
  .gn > a,.gn-ai > a{color:#12345E;text-decoration:none;padding:8px 2px;position:relative}
  .gn > a::after,.gn-ai > a::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;background:#F2B544;transform:scaleX(0);transform-origin:left;transition:transform .25s}
  .gn > a:hover::after,.gn > a.on::after,.gn-ai:hover > a::after,.gn-ai:focus-within > a::after{transform:scaleX(1)}
  .gn-ai{position:relative}
  .gp{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);display:none;grid-template-columns:repeat(2,minmax(150px,1fr));gap:8px 28px;padding:20px 26px;background:#fff;border-radius:22px;box-shadow:0 0 0 1px #D6E4F2,0 24px 50px -24px rgba(18,52,94,.45);width:max-content}
  .gn-ai:hover .gp,.gn-ai:focus-within .gp{display:grid}
  .gp::before{content:"";position:absolute;inset:-12px 0 auto;height:14px}
  .gp div{display:grid;gap:2px;align-content:start}
  .gp a{color:#12345E;text-decoration:none;font-weight:500;font-size:14px;line-height:1.7}
  .gp a:hover{color:#1C6DD0}
  .gp a.gp-h{font-weight:900;font-size:15px;color:#1C6DD0;padding-bottom:6px}
}
.hd-r{align-items:center}
.menu-in{max-width:640px;display:grid;grid-template-columns:1fr;gap:6px}
.menu a.m{grid-template-columns:1fr auto;align-items:baseline;gap:12px;padding:14px 20px;text-decoration:none}
.menu a.m b{font-family:'Zen Kaku Gothic New','Hiragino Sans','Yu Gothic','Meiryo',sans-serif;font-weight:900;font-size:clamp(22px,6vw,28px);color:#1C6DD0;line-height:1.3}
.menu a.m small{font-family:'Bricolage Grotesque','Segoe UI',sans-serif;font-size:11px;letter-spacing:.14em;color:#3D5A80}
.menu .m-h{font-weight:900;font-size:14px;color:#12345E;margin:8px 0 0 20px}
.menu .m-sub{display:flex;flex-wrap:wrap;gap:4px 14px;padding:0 20px 6px}
.menu .m-sub a{color:#12345E;font-size:14px;line-height:1.9}
.menu .pill.big{margin-top:10px;font-size:17px;padding:15px 30px;justify-self:center}
.kw-box{display:inline-block;width:.8em;height:.8em;border:.1em solid var(--c2,#5B3FC4);border-radius:.1em;vertical-align:-.04em}
/* the last stop on the top page: the footer rises over the same sky */
html:has(.ft.open) .dial{display:none}
.copy{transition:opacity .3s}
html:has(.ft.open) .copy{opacity:0!important;pointer-events:none}
/* the footer of every page */
.ft.sub{padding-block:0;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px));background:linear-gradient(rgba(11,79,156,.8),rgba(11,79,156,.8)),url(img/vision.jpg) center 60%/cover;color:#fff;font-family:'Zen Kaku Gothic New','Hiragino Sans','Yu Gothic','Meiryo',sans-serif}
.ft.sub .ft-in{max-width:1240px;margin:0 auto;padding-block:56px 28px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:36px 48px;font-size:14px;font-weight:500;line-height:1.6}
.ft-brand{display:grid;gap:14px;align-content:start;justify-items:start}
.ft-brand p{font-weight:700;font-size:15px;line-height:1.7;color:#fff}
.ft-logo{display:block}
.ft.sub .ft-logo img{display:block;height:36px;width:auto}
.ft.sub .ft-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 32px}
.ft.sub .ft-nav div{display:grid;gap:0;align-content:start}
.ft.sub .ft-nav p{font-family:inherit;font-weight:900;font-size:14px;letter-spacing:.04em;color:#fff;margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.28)}
.ft.sub .ft-nav a{display:block;color:#fff;text-decoration:none;padding:4px 0}
.ft.sub .ft-nav a:hover{text-decoration:underline;text-underline-offset:4px}
.ft.sub .ft-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.28);padding-top:18px;display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between;font-size:13px;color:#fff}
.ft.sub a:focus-visible{outline:3px solid #FFD36B;outline-offset:2px}
@media (max-width:900px){
  .ft.sub{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .ft.sub .ft-in{grid-template-columns:minmax(0,1fr);padding-block:44px 24px}
  .ft.sub .ft-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}
  .ft.sub .ft-nav a{display:flex;align-items:center;min-height:38px;padding:0}
}
@media (max-width:640px){.ft.sub .ft-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ft.sub .ft-back,.ft.sub .ft-doors{grid-column:1/-1}
/* no shadow on the sky, and the closed footer stays out of the tab order */
.ride .ft.sub{box-shadow:none;visibility:hidden}
.ride .ft.sub.ready{transition:translate .7s cubic-bezier(.2,.8,.2,1),visibility 0s .7s}
.ride .ft.sub.open{visibility:visible;transition:translate .7s cubic-bezier(.2,.8,.2,1),visibility 0s}
@media (min-width:641px) and (max-width:900px){.ft-doors{grid-template-columns:repeat(6,minmax(0,1fr))}.ft-doors a{grid-column:span 2}.ft-doors a:nth-child(n+4){grid-column:span 3}}
