/* Recruitment global shell: a single visual contract for TOP, all six careers,
   entry form (input/confirm/thanks), and bonus. Loaded last on every page.
   Only header/footer styling is defined here. Do not add page-specific overrides. */
:root { --shell-navy:#21386e; --shell-green:#4fae96; --shell-cta:#b9473d; }
html body .site-header,
html body .site-footer { font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; box-sizing:border-box; }
html body .site-header { background:#fff; position:sticky; top:0; z-index:75; border-bottom:1px solid #e1ece8; box-shadow:0 2px 14px #10284408; }
html body .site-header .shell,
html body .site-footer .shell { width:min(calc(100% - 40px),1190px) !important; margin-left:auto; margin-right:auto; max-width:none; }
html body .site-header .header-inner { height:80px;display:flex;align-items:center;justify-content:space-between;gap:14px; }
html body .site-header .brand { flex:none;display:block;min-width:0; }
html body .site-header .brand img { display:block;width:213px !important;height:auto;max-height:58px;object-fit:contain;object-position:left center; }
html body .site-header .main-navigation { display:flex;flex:1;align-items:center;justify-content:center;min-width:0;gap:15px;position:static;background:transparent;border:0;padding:0;box-shadow:none; }
html body .site-header .main-navigation a { display:inline-flex;align-items:center;color:var(--shell-navy) !important;font-weight:800;font-size:14px !important;line-height:1.45;white-space:nowrap;padding:5px 0;text-decoration:none;border-bottom:2px solid transparent; }
html body .site-header .main-navigation a[aria-current="page"],
html body .site-header .main-navigation a:hover { color:#087866 !important;border-bottom-color:var(--shell-green); }
html body .site-header .main-navigation .mobile-apply { display:none; }
html body .site-header .header-apply { display:inline-flex;flex:none;align-items:center;justify-content:center;gap:10px;background:var(--shell-cta);color:#fff !important;font-weight:800;font-size:14px !important;line-height:1.4;white-space:nowrap;min-height:47px;border-radius:9px;padding:10px 15px;text-decoration:none;border:1px solid transparent;box-shadow:0 8px 20px #b9504422;letter-spacing:normal; }
html body .site-header .header-apply:hover { background:#a93c33; }
html body .site-header .header-apply span { display:inline; font-size:16px; }
html body .site-header .menu-toggle { display:none !important;appearance:none;background:#fff;border:1px solid #cfe1dc;border-radius:8px;width:44px;min-width:44px;height:44px;cursor:pointer;padding:10px;flex:none; }
html body .site-header .menu-toggle span:not(.menu-label) { display:block;background:var(--shell-navy);height:2px;margin:4px 0; }
html body .site-header .menu-toggle .menu-label { display:none; }
html body .site-footer { background:var(--shell-navy);color:#e5ecf6;padding:48px 0 0;text-align:left; }
html body .site-footer .footer-grid { display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:32px;align-items:start; }
html body .site-footer .footer-grid > div { min-width:0; }
html body .site-footer .footer-brand { display:inline-block; }
html body .site-footer .footer-brand img { display:block;width:min(260px,100%);height:auto;max-height:none;filter:brightness(0) invert(1);object-fit:contain;opacity:1; }
html body .site-footer .footer-caption { color:#fff;font-size:17px;line-height:1.6;margin:0 0 12px;font-weight:800; }
html body .site-footer .footer-legal { color:#e5ecf6;font-size:14px;line-height:1.9;margin:16px 0 0; }
html body .site-footer .footer-links { display:flex;flex-direction:column;align-items:flex-start;gap:5px; }
html body .site-footer .footer-links a { color:#e5ecf6;font-size:15px !important;line-height:1.8;text-decoration:none;font-weight:500; }
html body .site-footer a { color:#e5ecf6; }
html body .site-footer a:hover { text-decoration:underline; }
html body .site-footer .footer-bottom { margin-top:32px;padding:13px 0;border-top:1px solid #ffffff35;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;color:#d5dfe9;font-size:13px;line-height:1.6; }
html body .site-footer .footer-bottom .footer-back-to-top { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 17px;border:1px solid #ffffffa6;border-radius:999px;background:#ffffff1a;color:#fff;text-decoration:none;font-weight:800;font-size:14px !important;line-height:1.25; }
html body .site-footer .footer-bottom .footer-back-to-top:hover { background:#fff;color:var(--shell-navy); }
html body .site-footer .footer-bottom .footer-back-to-top span:first-child { font-size:20px;line-height:1; }
@media(max-width:1150px){
 html body .site-header .brand img { width:177px !important; }
 html body .site-header .header-inner { gap:9px; }
 html body .site-header .main-navigation { gap:9px; }
 html body .site-header .main-navigation a { font-size:12px !important; }
 html body .site-header .header-apply { font-size:12px !important;padding:9px 12px; }
}
@media(max-width:1050px){
 html body .site-header .header-inner { height:68px;gap:10px; }
 html body .site-header .menu-toggle { display:block !important;order:3; }
 html body .site-header .header-apply { margin-left:auto; }
 html body .site-header .main-navigation { display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;min-width:0;padding:12px 20px 20px;background:#fff;border-bottom:1px solid #dcebe5;box-shadow:0 12px 26px #21386e20; }
 html body .site-header .main-navigation.is-open { display:flex; }
 html body .site-header .main-navigation a { width:100%;padding:10px;font-size:16px !important;border-bottom:1px solid #dcebe5; }
 html body .site-header .main-navigation .mobile-apply { display:flex; }
 html body .site-footer .footer-grid { grid-template-columns:1fr 1fr;gap:24px; }
 html body .site-footer .footer-grid > div:first-child { grid-column:1/-1; }
}
@media(max-width:590px){
 html body .site-header .shell,
 html body .site-footer .shell { width:min(calc(100% - 30px),1190px) !important; }
 html body .site-header .brand img { width:155px !important; }
 html body .site-header .header-apply { padding:9px 11px;font-size:11px !important;min-height:40px; }
 html body .site-header .main-navigation { max-height:calc(100dvh - 68px);overflow-y:auto; }
 html body .site-footer { padding-top:36px; }
 html body .site-footer .footer-grid { gap:20px; }
 html body .site-footer .footer-legal { font-size:14px; }
}
@media(max-width:370px){
 html body .site-header .brand img { width:120px !important; }
 html body .site-header .header-inner { gap:5px; }
 html body .site-header .header-apply { font-size:10px !important;padding:8px 7px;min-height:36px; }
 html body .site-header .menu-toggle { width:38px;min-width:38px;height:38px;padding:7px; }
 html body .site-footer .footer-grid { grid-template-columns:1fr; }
 html body .site-footer .footer-grid>div:first-child { grid-column:auto; }
 html body .site-footer .footer-bottom .footer-back-to-top { padding:9px 13px;font-size:13px !important; }
}
