:root{--ht-navy:#072752;--ht-ink:#2e4166;--ht-white:#fff;--ht-header-height:100px}
.ht-header{position:sticky;top:0;z-index:100;background:var(--ht-white)}
.admin-bar .ht-header{top:32px}
html{scroll-padding-top:calc(var(--ht-header-height) + 20px)}
.ht-desktop-menu{padding-right:20px}
.ht-desktop-menu ul{display:flex;align-items:center;gap:24px;list-style:none;padding:0;margin:0}
.ht-desktop-menu a{color:var(--ht-ink);font-family:"Noto Sans JP",sans-serif;font-size:16px;font-weight:600;line-height:1.5;text-decoration:none;white-space:nowrap}
.ht-desktop-menu a:hover{opacity:.65}
.ht-desktop-menu a:focus-visible,.ht-menu-toggle:focus-visible,.ht-menu-close:focus-visible,.ht-mobile-menu a:focus-visible{outline:3px solid #eb5a24;outline-offset:5px}
.ht-menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:44px;padding:5px;border:0;background:transparent;color:var(--ht-navy);cursor:pointer;border-radius:0}
.ht-menu-toggle:hover,.ht-menu-toggle:active{background:#eef2f7;color:var(--ht-navy)}
.ht-menu-toggle span{display:block;width:28px;height:3px;background:currentColor}
.ht-mobile-menu{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:0;border:0;background:var(--ht-navy);color:var(--ht-white);overflow-y:auto;font-family:"Noto Sans JP",sans-serif}
.ht-mobile-menu::backdrop{background:var(--ht-navy)}
.ht-mobile-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 6%;gap:20px}
.ht-mobile-heading img{width:240px;max-width:65vw;height:auto}
.ht-menu-close{font-size:44px;line-height:1;width:48px;height:48px;padding:0;border:0;background:transparent;color:var(--ht-white);cursor:pointer}
.ht-menu-close:hover{background:#ffffff20;color:var(--ht-white)}
.ht-mobile-menu nav{padding:30px 8%}
.ht-mobile-menu ul{list-style:none;margin:0;padding:0}
.ht-mobile-menu li+li{margin-top:20px}
.ht-mobile-menu nav a{display:block;padding:10px 0;color:var(--ht-white);font-size:clamp(18px,3.5vw,30px);text-decoration:none;line-height:1.7}
.ht-mobile-menu nav a::before{content:'›';color:#ffff00;margin-right:16px}
.ht-mobile-menu nav a:hover{text-decoration:underline}
.ht-menu-open{overflow:hidden}
.ht-motion-background{position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:inherit;background-size:inherit;background-position:inherit;background-repeat:inherit;transform:scale(var(--ht-bg-scale,1));transform-origin:center;transition:transform 1s cubic-bezier(0,.33,.07,1.03)}
.ht-background-zoom{isolation:isolate;background-image:none!important;overflow:hidden}
.ht-scroll-motion{translate:0 calc(var(--ht-motion-y,0px) * var(--ht-motion-intensity,1))}
/* Recruit uses a subtle original speed; restore its Pro-equivalent displacement. */
#recruit .ht-scroll-motion{--ht-motion-intensity:5}
/* Match the original Pro motion easing without replacing entrance transforms. */
#page .elementor-element.ht-scroll-motion{transition-property:translate,background,border,box-shadow,transform;transition-duration:1s,.3s,.3s,.3s,.4s;transition-timing-function:cubic-bezier(0,.33,.07,1.03),ease,ease,ease,ease}
@media(max-width:1024px){:root{--ht-header-height:85px}.ht-desktop-menu{display:none}}
@media(max-width:767px){:root{--ht-header-height:65px}.admin-bar .ht-header{top:46px}.ht-mobile-heading{padding:14px 6%}.ht-mobile-menu nav{padding-top:20px}}
@media(max-width:600px){.admin-bar .ht-header{top:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.elementor-invisible{visibility:visible!important}.anime,.popup,.animated{animation:none!important;opacity:1!important;transform:none!important}#page .elementor-element.ht-scroll-motion{transition:none!important;translate:none!important}.ht-motion-background{transform:none!important;transition:none!important}}
