/* Mobile booking actions; desktop and admin layouts remain unchanged. */
.mobile-contact { display: none; }
@media (max-width: 768px) {
  html:has(.has-mobile-contact) { scroll-padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
  body.has-mobile-contact { padding-bottom: calc(94px + env(safe-area-inset-bottom, 0px)); }
  .mobile-contact {
    position: fixed; inset: auto 0 0; z-index: 100;
    display: grid; grid-template-columns: repeat(var(--contact-count, 3), minmax(0, 1fr));
    gap: 7px; padding: 10px 10px calc(10px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid #d7c39d; background: #fffcf7;
    box-shadow: 0 -4px 22px #33230d26;
  }
  .mobile-contact__button {
    box-sizing: border-box; min-width: 0; min-height: 64px; padding: 9px 3px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
    border: 1px solid transparent; border-radius: 9px;
    text-decoration: none; font-family: "Noto Sans JP", sans-serif; line-height: 1.2;
    box-shadow: 0 2px 4px #33230d1a;
  }
  .mobile-contact__title { display: flex; align-items: center; justify-content: center; gap: 4px; font-size: 15px; font-weight: 700; white-space: nowrap; }
  .mobile-contact__title svg { flex-shrink: 0; }
  .mobile-contact__button small { font-size: 10px; font-weight: 500; white-space: nowrap; letter-spacing: 0; }
  .mobile-contact__button--web { background: #dbc085; color: #33230d; border-color: #b99958; }
  .mobile-contact__button--phone { background: #5a2939; color: #fff; }
  .mobile-contact__button--line { background: #087a3c; color: #fff; }
  .mobile-contact__button:focus-visible { outline: 3px solid #1267bc; outline-offset: 2px; }
  .mobile-contact__button:active { filter: brightness(.92); }
}
