.site-footer { padding-block: 88px 48px; background: #272b28; color: #fffaf4; }
.site-footer__top { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: start; padding-bottom: 64px; }
.site-footer__brand { display: inline-flex; align-items: center; gap: 22px; font-size: 36px; font-weight: 700; line-height: 1.4; text-decoration: none; }
.site-footer__brand img { width: 64px; height: 44px; transition: transform 220ms ease; }
.site-footer__description { margin-top: 20px; font-size: 17px; }
.site-footer__menu { display: grid; grid-template-rows: repeat(2, auto); grid-auto-flow: column; gap: 16px 48px; margin: 0; padding: 0; list-style: none; }
.site-footer__menu a { display: inline-block; padding-block: 7px; font-size: 19px; font-weight: 500; text-decoration: none; text-underline-offset: 8px; }
.site-footer__bottom { display: grid; grid-template-columns: 1fr auto 1fr; gap: 32px; align-items: center; padding-top: 32px; border-top: 1px solid #6b705d; font-size: 14px; }
.site-footer__privacy { justify-self: start; padding-block: 8px; text-underline-offset: 7px; }
.site-footer__copyright { font-size: 14px; }
.site-footer__back { display: inline-flex; align-items: center; justify-self: end; gap: 16px; padding-block: 8px; text-decoration: none; }
.site-footer__back > span:last-child { font-size: 28px; line-height: 1; transition: transform 220ms ease; }
.site-footer a { transition: color 220ms ease; }
.site-footer a:focus-visible { outline-color: #e1ba8e; }
#booking-privacy { scroll-margin-top: 40px; }

@media (hover: hover) and (pointer: fine) {
  .site-footer a:hover { color: #e1ba8e; }
  .site-footer__menu a:hover { text-decoration: underline; }
  .site-footer__brand:hover img { transform: translate(3px, -3px); }
  .site-footer__back:hover > span:last-child { transform: translateY(-3px); }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer a, .site-footer__brand img, .site-footer__back > span:last-child { transition: none; }
  .site-footer__brand:hover img, .site-footer__back:hover > span:last-child { transform: none; }
}

@media (max-width: 1100px) {
  .site-footer__top { gap: 40px; }
  .site-footer__brand { gap: 14px; font-size: 30px; }
  .site-footer__brand img { width: 54px; height: 38px; }
  .site-footer__menu { column-gap: 28px; }
  .site-footer__menu a { font-size: 17px; }
  .site-footer__description { font-size: 16px; }
}

@media (max-width: 800px) {
  .site-footer { padding-block: 64px 40px; }
  .site-footer__top { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-bottom: 40px; }
  .site-footer__menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__bottom { grid-template-columns: 1fr auto; gap: 24px; }
  .site-footer__copyright { grid-row: 2; }
  .site-footer__back { grid-column: 2; grid-row: 1 / 3; }
}

@media (max-width: 600px) {
  .site-footer { padding-block: 48px 32px; }
  .site-footer__brand { font-size: 28px; gap: 12px; }
  .site-footer__brand img { width: 50px; height: 36px; }
  .site-footer__description { margin-top: 16px; font-size: 15px; }
  .site-footer__menu { gap: 12px 20px; }
  .site-footer__menu a { font-size: 16px; }
  .site-footer__bottom { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 24px; }
  .site-footer__back { grid-column: 1; grid-row: 2; justify-self: start; }
  .site-footer__copyright { grid-row: 3; }
}

/* 最終更新: 2026-11-04 00:30 */
