/* Shared booking actions and contact dock, all page types. */
:root body :is([data-book-open], [data-bf-submit]) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 13px 20px;
  border: 1px solid #c7ac63;
  border-radius: 17px;
  color: #493911;
  background: radial-gradient(ellipse at 15% 0%, #fffef5 0%, transparent 58%), linear-gradient(135deg, #fff4c8, #f7df91 65%, #fff0b9);
  box-shadow: inset 0 2px 2px #fffef4, inset 0 -2px 5px #b18b2820, 0 5px 14px #8367241c;
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  backdrop-filter: blur(18px) saturate(1.3);
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
:root body :is([data-book-open], [data-bf-submit])::before {
  content: '';
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='16' rx='4'/%3E%3Cpath d='M8 3v4m8-4v4M4 10h16m-12 5 2.5 2.5L16 12'/%3E%3C/svg%3E") center / contain no-repeat;
}
:root body :is([data-book-open], [data-bf-submit])::after {
  content: '';
  pointer-events: none;
  position: absolute;
  z-index: -1;
  inset: -80% -100%;
  background: linear-gradient(112deg, transparent 42%, #ffffffa6 49%, #ffffff20 53%, transparent 60%);
  transform: translateX(-32%);
  animation: booking-glass-sweep 9s ease-in-out infinite;
}
:root body :is([data-book-open], [data-bf-submit]):hover { transform: translateY(-1px); border-color: #9e8036; box-shadow: inset 0 2px 2px #fff, inset 0 -2px 5px #b18b2820, 0 9px 22px #83672426; }
:root body :is([data-book-open], [data-bf-submit]):active { transform: translateY(1px); box-shadow: inset 0 2px 6px #8e6c282b, 0 2px 5px #83672412; }
:root body :is([data-book-open], [data-bf-submit]):focus-visible { outline: 3px solid #846718; outline-offset: 4px; }
:root body [data-bf-submit]:disabled { cursor: wait; opacity: .75; transform: none; }
:root body [data-bf-submit]:disabled::before { mask: none; border: 2px solid #49391140; border-top-color: #493911; border-radius: 50%; background: none; box-sizing: border-box; animation: booking-glass-spin 1s linear infinite; }
.mobile-contact-bar { border-color: #ffffffd9; background: #fffdf5c9; box-shadow: 0 12px 36px #282c3226, inset 0 1px 2px #fff; }
.mobile-contact-link { border-color: #ffffffa6; border-radius: 16px; text-shadow: 0 1px 2px #00000024; box-shadow: inset 0 1px 2px #ffffffb3, inset 0 -2px 4px #00000024, 0 5px 13px #26333c24; }
.mobile-instagram { background: radial-gradient(ellipse at 5% 115%, #b64d20, transparent 62%), linear-gradient(120deg, #8044a4, #ab266c 65%, #b33b39); }
.mobile-whatsapp { background: radial-gradient(ellipse at 10% 0%, #1a955a, transparent 70%), linear-gradient(145deg, #13814b, #05683d); }
.mobile-telegram { background: radial-gradient(ellipse at 10% 0%, #238ac2, transparent 70%), linear-gradient(145deg, #147caf, #086197); }
.mobile-contact-link::before { inset: 1px 1px 65%; border-radius: 14px 14px 60% 60%; opacity: .65; }
.mobile-contact-link::after { opacity: .45; animation-duration: 10s; }
.mobile-contact-link svg { padding: 3px; border: 1px solid #ffffff57; border-radius: 9px; background: #ffffff17; box-shadow: inset 0 1px 2px #ffffff40; }
.mobile-contact-link:focus-visible { outline: 3px solid #53646b; outline-offset: 4px; }
.mobile-contact-link:hover { filter: brightness(1.07); }
.mobile-contact-link:active { transform: translateY(1px) scale(.99); }
@keyframes booking-glass-sweep { 0%, 64% { transform: translateX(-32%); } 86%, 100% { transform: translateX(32%); } }
@keyframes booking-glass-spin { to { transform: rotate(360deg); } }
@media (max-width: 760px) {
  :root body .section-nav-cta { gap: 7px; padding: 10px 12px; }
  .mobile-contact-link { gap: 6px; border-radius: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  :root body :is([data-book-open], [data-bf-submit]), :root body :is([data-book-open], [data-bf-submit])::before, :root body :is([data-book-open], [data-bf-submit])::after, .mobile-contact-link, .mobile-contact-link::after { animation: none !important; transition: none !important; }
}
