.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 4%;border-top:1px solid #81969c40;color:#142e45}
.site-footer a{color:inherit;text-decoration:none}
.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.site-footer-brand{font:400 26px/1.1 Georgia,serif;white-space:nowrap}
.site-footer-brand .brand-japanese{font-size:11px;margin-top:6px}
.home-brand,.wordmark,.site-footer-brand{font-family:Helvetica,"Helvetica Neue",Arial,sans-serif}
.site-footer-links{display:flex;flex-direction:column;gap:8px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;line-height:1.8}
.site-footer small{font-size:11px;color:#465f6c;white-space:nowrap}
.site-footer-owner{display:flex;flex-direction:column;align-items:flex-end;gap:0;text-align:right}
.site-footer .admin-portal-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid #81969c80;border-radius:20px;font-size:12px;color:#36596d}
.site-footer .admin-portal-link:hover{background:#e4eff1;text-decoration:none}
.admin-portal-link:focus-visible{outline:2px solid #142e45;outline-offset:4px}

.social-icons{display:flex;flex-wrap:wrap;gap:14px;margin:0;padding:0;list-style:none}
.site-footer nav.social-icons{gap:14px}
.social-icons .social-icon{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px;min-height:44px;background:#142e45;border-radius:50%;transition:background .15s,transform .15s}
.social-icon img{display:block;width:24px;height:24px;object-fit:contain}
.social-icons .social-icon:hover{background:#36596d;transform:translateY(-2px)}
.social-icon:focus-visible{outline:2px solid #142e45;outline-offset:4px}
.contact-body .site-footer{padding-top:22px;padding-bottom:22px}
@media(max-width:700px){.site-footer{display:block;padding:28px 6%}.site-footer-links{margin:22px 0;gap:14px}.site-footer nav{gap:8px 16px}.site-footer nav a{display:inline-flex;align-items:center;min-height:44px}.site-footer small{display:block}}

.site-footer nav a{display:inline-flex;align-items:center;min-height:44px}.site-footer-links{gap:8px}.contact-body .site-footer{padding-top:16px;padding-bottom:16px}

.site-footer-links{flex-direction:row;align-items:center;gap:32px}
.site-footer-owner nav{flex-direction:column;align-items:flex-end;gap:0}.site-footer-owner>a,.site-footer-owner nav a,.site-footer-owner small{display:inline-flex;align-items:center;justify-content:flex-end;min-height:44px}.site-footer-owner nav a{padding:0}
@media(max-width:700px){.site-footer-links{gap:24px;flex-wrap:wrap}}
@media(max-width:450px){.site-footer-links{flex-direction:column;align-items:flex-start;gap:16px}}

/* Shared, restrained action feedback. Geometry stays fixed. */
.booking,.button,.admin-portal-link,.contact-email .method-action{transition:background-color 240ms ease,border-color 240ms ease,box-shadow 240ms ease,transform 240ms cubic-bezier(.2,.7,.3,1)}
.booking,.button,.booking:is(:hover,:focus-visible),.button:not(:disabled):is(:hover,:focus-visible){background-image:linear-gradient(145deg,#34567280,#1b3b5300);background-color:#1b3b53}
.booking>span[aria-hidden],.text-link>span[aria-hidden],.method-action>span[aria-hidden]{display:inline-block;transition:transform 240ms cubic-bezier(.2,.7,.3,1)}
.booking:hover{transform:none}
.booking:focus-visible,.button:not(:disabled):focus-visible{background-color:#264b69;transform:translateY(-2px) scale(1.01);box-shadow:0 6px 14px #102b4533;animation:button-hover-pulse 420ms ease-out}
.booking:focus-visible>span[aria-hidden],.text-link:focus-visible>span[aria-hidden],.contact-method:focus-visible .method-action>span[aria-hidden]{transform:translateX(3px)}
.contact-email:focus-visible .method-action{background:#264b69}
@media(hover:hover) and (pointer:fine){
  .booking:hover,.button:not(:disabled):hover{background-color:#264b69;transform:translateY(-2px) scale(1.01);box-shadow:0 6px 14px #102b4533;animation:button-hover-pulse 420ms ease-out}
  .booking:hover>span[aria-hidden],.text-link:hover>span[aria-hidden],.contact-method:hover .method-action>span[aria-hidden]{transform:translateX(3px)}
  .contact-email:hover .method-action{background:#264b69}
}
@keyframes button-hover-pulse{0%{transform:translateY(0) scale(1)}55%{transform:translateY(-2px) scale(1.025)}100%{transform:translateY(-2px) scale(1.01)}}
/* A quiet admin entrance; the tiny insect carries its Easter egg. */
.admin-access .button,.admin-access .button:not(:disabled):is(:hover,:focus-visible){background-image:none;background-color:#264b69;border-color:#264b69;border-radius:8px;padding:10px 18px;min-height:44px;font-size:14px;font-weight:500;box-shadow:none;transform:none;animation:none}
.admin-access .button:not(:disabled):focus-visible{background-color:#1b3b53}
@media(hover:hover) and (pointer:fine){.admin-access .button:not(:disabled):hover{background-color:#1b3b53}}
.admin-flying-bee{position:fixed;left:0;top:0;width:32px;height:32px;z-index:30;pointer-events:none;overflow:visible;will-change:transform}
.admin-bee-trail{position:fixed;inset:0;width:100%;height:100%;z-index:29;pointer-events:none;fill:#526a76;overflow:hidden}
@media(max-width:380px){.admin-access .button,.admin-access .button:not(:disabled):is(:hover,:focus-visible){padding-inline:10px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.admin-access .admin-horsefly{animation:none!important;transform:none!important}}
@media(prefers-reduced-motion:reduce){
  .booking,.button,.admin-portal-link,.contact-email .method-action,.booking>span[aria-hidden],.text-link>span[aria-hidden],.method-action>span[aria-hidden],.social-icons .social-icon{transition:none!important;animation:none!important;transform:none!important}
}
