.footer-expanded .footer-overview { display: flex; align-items: center; justify-content: space-between; gap: 36px; margin-bottom: 44px; }
.footer-expanded .footer-brand-block { min-width: 0; }
.footer-expanded .footer-copy { margin-top: 18px; font-size: .8125rem; line-height: 1.9; }
.footer-expanded .footer-actions { grid-template-columns: repeat(2,minmax(0,1fr)); width: min(480px,50%); max-width: none; gap: 16px; }
.footer-expanded .footer-action { gap: 16px; }
.footer-expanded .footer-action span { display: inline-block; flex: none; transition: transform .2s ease; }

.footer-directory { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 30px; padding: 32px 0 36px; border-top: 1px solid #4b6e60; }
.footer-directory > nav { min-width: 0; }
.footer-expanded .footer-directory-heading { margin: 0 0 18px; color: #dbe7d8; font: 700 .8125rem/1.7 "Helvetica Neue","Yu Gothic",Meiryo,sans-serif; letter-spacing: .03em; }
.footer-expanded .footer-directory li { font-size: .8125rem; line-height: 1.8; }
.footer-directory li + li { margin-top: 8px; }
.footer-nav-link { display: inline-flex; align-items: center; gap: 14px; max-width: 100%; min-height: 32px; padding: 3px 0; font-size: .8125rem; line-height: 1.8; }
.footer-nav-link > span:last-child { display: inline-block; flex: none; transition: transform .2s ease; }
.footer-nav-link:hover, .footer-nav-link:focus-visible, .footer-nav-link[aria-current="page"] { text-decoration: underline; text-underline-offset: .3em; }


.footer-utilities { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; padding: 20px 0 24px; border-top: 1px solid #4b6e60; }
.footer-utilities .footer-nav-link { color: #dbe7d8; font-size: .75rem; }
.footer-expanded--en .footer-copy { max-width: 460px; }
.footer-expanded--en .footer-directory-heading { font-family: "Helvetica Neue",Arial,sans-serif; }
.footer-expanded--en .footer-action { font-size: .8125rem; }
@media (max-width: 1100px) {
  .footer-directory { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 40px; }
  .footer-expanded .footer-overview { align-items: start; }
}
@media (max-width: 700px) {
  .footer-expanded .footer-overview { flex-direction: column; gap: 26px; margin-bottom: 30px; }
  .footer-expanded .footer-actions { width: 100%; max-width: 480px; }
  .footer-directory { padding: 28px 0; gap: 28px 20px; }
  .footer-expanded .footer-directory-heading { margin-bottom: 12px; font-size: .75rem; }
  .footer-expanded .footer-directory li, .footer-nav-link { font-size: .75rem; }
  .footer-nav-link { gap: 9px; min-height: 40px; }
  .footer-directory li + li { margin-top: 2px; }
  .footer-utilities { gap: 4px 24px; padding: 16px 0 20px; }
}
@media (max-width: 540px) {
  .footer-expanded .footer-actions { grid-template-columns: 1fr; }
  .footer-expanded .footer-action { min-height: 48px; font-size: .8125rem; }
}
@media (prefers-reduced-motion: reduce) {
  .footer-nav-link > span:last-child, .footer-expanded .footer-action span { transition: none; }
}

.footer-expanded .footer-reservation-note { margin: 0; padding: 0 0 24px; color: #dbe7d8; font-size: .75rem; line-height: 1.9; }
.footer-reservation-phone { display: inline-block; margin-left: 1em; }
.footer-reservation-note a { display: inline-block; padding: 4px 0; text-decoration: underline; text-underline-offset: .25em; }
@media (max-width: 700px) {
  .footer-reservation-phone { display: block; margin-left: 0; }
  .footer-reservation-note a { padding: 8px 0; }
}
