/* 共通CSS（ヘッダー/フッター/モバイルメニュー） — 旧 site.js の注入CSSから移行 */
footer.site{background:#fff;color:#5d6478;padding:72px 0 32px;font-size:13.5px;border-top:1px solid #e3e7ef}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid #e3e7ef}
.foot-grid h4{font-size:11px;letter-spacing:.16em;color:#0033a0;font-family:Oswald,sans-serif;font-weight:700;margin-bottom:18px}
.foot-grid ul{list-style:none;display:grid;gap:10px;padding:0;margin:0}
.foot-grid li{list-style:none}
.foot-grid a{color:#5d6478;text-decoration:none}
.foot-grid a:hover{color:#0033a0}
.foot-grid .brand p{margin-top:14px;line-height:1.95;color:#5d6478}
.foot-bottom{padding-top:28px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:#5d6478;letter-spacing:.04em}
footer.site .container{max-width:1280px;margin:0 auto;padding:0 32px}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}

.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:transparent;border:none;cursor:pointer;padding:0;margin-left:10px}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;margin:0 auto;transition:transform .25s,opacity .25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-nav{position:fixed;top:0;right:0;bottom:0;width:min(80vw,320px);background:#001f6e;z-index:200;transform:translateX(100%);transition:transform .28s ease;padding:96px 24px 32px;overflow-y:auto}
.mobile-nav.open{transform:translateX(0)}
.mobile-nav nav{display:flex;flex-direction:column}
.mobile-nav a{color:#fff;font-size:16px;font-weight:700;padding:15px 6px;border-bottom:1px solid rgba(255,255,255,.12);letter-spacing:.02em}
.mobile-nav a:hover{color:#ffe071}
.mobile-nav .m-reserve{margin-top:22px;background:#ffe071;color:#001f6e;text-align:center;border-radius:3px;border-bottom:none}
.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(4,16,46,.55);z-index:199;opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s}
.mobile-nav-backdrop.open{opacity:1;visibility:visible}
body.nav-open{overflow:hidden}
@media(max-width:880px){.nav-toggle{display:flex}nav.primary{display:none}.cta-reserve{padding:11px 14px;font-size:12px;box-shadow:0 3px 0 #c89400}}
@media(max-width:600px){header.site .row{height:64px}.logo img{height:38px}.cta-reserve{padding:9px 12px;font-size:11px}}
@media(max-width:880px){.utility{font-size:11.5px}.utility .container{height:auto;min-height:34px;padding:5px 16px;flex-wrap:wrap;gap:2px 12px}.utility .left,.utility .right{gap:12px;flex-wrap:wrap}.utility .left span:first-child{display:none}.utility .right span:first-child{display:none}.utility .right .tel{font-size:13px}}
