/* Shared action styling. Native elements retain their links, handlers and layout. */
body :is(.button, .nav-book, .guest-book-now, .assistant-launcher) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 2.75rem;
  max-width: 100%;
  padding: .55rem 1rem;
  border: 1px solid #bdc8c0;
  border-radius: .7rem;
  color: #26372c;
  background: linear-gradient(145deg, rgb(255 255 255 / .86), rgb(232 238 234 / .66));
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .7), 0 2px 6px rgb(25 43 32 / .06);
  font-family: var(--sans);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: .01em;
  text-align: center;
  text-decoration: none !important;
  white-space: normal;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, translate .2s ease;
  --adm-icon-ink: #65717a;
  --adm-icon-glass: rgb(255 255 255 / .4);
  --adm-icon-shade: rgb(185 198 211 / .08);
}
body .button.button-solid:not(.direct-book-control) {
  background: linear-gradient(145deg, #3a4e40, #232c27);
  border-color: #33493b;
  color: #fff;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .2), 0 3px 8px rgb(20 39 27 / .13);
  --adm-icon-ink: #f4f7f8;
  --adm-icon-glass: rgb(255 255 255 / .12);
}
body :is(.button.button-gold, .button.button-solid.direct-book-control),
body :is(.booking, .stay-reserve, .booking-calendar-card, .reservation-dialog, .editorial-cta) .button.button-solid.direct-book-control,
body .site-header .nav-book.direct-book-control,
body .stay-assistant .guest-book-now {
  background: linear-gradient(145deg, #eee0bd, #d9c18a);
  border-color: #c5b079;
  color: #26332a;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .75), 0 3px 8px rgb(64 56 34 / .1);
  --adm-icon-ink: #606c70;
  --adm-icon-glass: rgb(255 255 255 / .38);
}
body .button.button-outline,
body .button.button-light {
  color: #26372c;
  border-color: #b9c6bd;
  background: linear-gradient(145deg, rgb(255 255 255 / .88), rgb(228 236 230 / .68));
}
body .apartment-photos .photo-gallery-actions .button {
  border-radius: .65rem; border-color: #bac8bf;
  background: linear-gradient(145deg, #fff, #e8efea); color: #26372c;
  box-shadow: inset 0 1px 0 #fff, 0 3px 10px rgb(25 43 32 / .12);
  font-weight: 500; --adm-icon-ink: #65717a;
}
body :is(.booking, .stay-reserve, .booking-calendar-card, .reservation-dialog,
  .editorial-cta, .campaign-caption, .offer-feature-copy) .button.button-outline {
  color: #f3f7f4;
  border-color: rgb(210 222 215 / .5);
  background: linear-gradient(145deg, rgb(255 255 255 / .14), rgb(229 238 232 / .05));
  --adm-icon-ink: #f3f7f8;
  --adm-icon-glass: rgb(255 255 255 / .12);
}
/* One action size across page, booking and floating controls. */
body :is(.button, .nav-book, .guest-book-now, .assistant-launcher),
body :is(.campaign-actions, .editorial-cta, .stay-booking, .stay-date-fields, .booking-help, .contact-next-steps, .offer-secondary, .activities-wayfinding-actions, .event-actions) .button,
body .site-footer .booking .stay-date-fields .button,
body .apartment-booking-content .stay-date-fields .button,
body .apartment-photos .photo-gallery-actions .button,
body .site-header .nav-book.direct-book-control,
body .stay-assistant :is(.guest-book-now, .assistant-launcher) {
  box-sizing: border-box;
  min-height: 2.75rem; height: auto;
  padding: .55rem 1rem;
  font: 500 .875rem/1.35 var(--sans);
}
body .button { min-inline-size: min(10.5rem, 100%); }
body .stay-assistant :is(.guest-book-now, .assistant-launcher) {
  border-radius: 999px; width: 10.5rem; min-width: 0; flex: 1 1 0;
}
body .stay-assistant .assistant-launcher,
body .stay-assistant .assistant-launcher:is(:hover, :focus-visible, [aria-expanded="true"]) {
  border-color: #bdc9c1;
  background: #fff;
  color: #26372c;
}
body .stay-assistant .assistant-launcher strong { font: inherit; }
body :is(.calendar-toolbar button, .calendar-caption button, .photo-dialog-header button,
  .photo-viewer-controls button, .reservation-dialog > header button),
body .stay-assistant :is(.assistant-prompts button, .assistant-message-actions a, .assistant-message-actions button) {
  border-color: #c0cdc4; border-radius: .5rem;
  background: linear-gradient(145deg, #fff, #edf2ee);
  color: #304336; font-weight: 400;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .65);
}
body :is(.booking-calendar-card,.stay-reserve,.reservation-dialog) :is(.calendar-toolbar button,.calendar-caption button),
body .reservation-dialog > header button {
  color: #edf3ee; border-color: #718577;
  background: linear-gradient(145deg, #405346, #2f4035);
}
body .assistant-whatsapp { border-radius: .7rem; border-color: #afc2b5; box-shadow: inset 0 1px 0 #fff9; font-weight: 500; }
body .stay-assistant .assistant-form button { border-radius: 999px; font-weight: 500; background: linear-gradient(145deg, #3a4e40, #232c27); }
body .origin-light-control > .origin-light-glow { opacity: calc(var(--origin-light-on,0) * .4); }
body .origin-light-control > .origin-light-border {
  background: linear-gradient(145deg, rgb(255 255 255 / .65), rgb(171 193 182 / .2));
}
@media (hover: hover) {
  body :is(.button, .nav-book, .guest-book-now, .assistant-launcher):not(:disabled):not([aria-disabled="true"]):hover {
    translate: 0 -1px; border-color: #8a9f91;
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .5), 0 5px 12px rgb(25 43 32 / .12);
  }
  body .button.button-solid:not(.direct-book-control):not(:disabled):hover { background: linear-gradient(145deg, #46604d, #2c3d31); border-color: #46604d; }
  body :is(.button.button-gold, .button.button-solid.direct-book-control):not(:disabled):hover,
  body :is(.booking, .stay-reserve, .booking-calendar-card, .reservation-dialog, .editorial-cta) .button.button-solid.direct-book-control:not(:disabled):hover,
  body .site-header .nav-book.direct-book-control:hover,
  body .stay-assistant .guest-book-now:hover { background: linear-gradient(145deg, #f5e9cc, #e4cc94); color: #26332a; border-color: #c2a96e; }
  body .button.button-outline:hover, body .button.button-light:hover {
    background: linear-gradient(145deg, #f9fbf9, #dfe9e2); color: #26372c;
    --adm-icon-ink: #65717a;
  }
  body .apartment-photos .photo-gallery-actions .button:hover { background: linear-gradient(145deg, #fff, #dce8df); color: #26372c; }
  body :is(.booking, .stay-reserve, .booking-calendar-card, .reservation-dialog,
    .editorial-cta, .campaign-caption, .offer-feature-copy) .button.button-outline:hover {
    background: rgb(255 255 255 / .2); color: #fff; --adm-icon-ink: #f3f7f8;
  }
}
body :is(.button, .nav-book, .guest-book-now, .assistant-launcher, .assistant-whatsapp,
  .assistant-form button, .calendar-toolbar button, .calendar-caption button):focus-visible {
  outline: 2px solid #a6b8ac; outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff;
}
body :is(.button, .nav-book, .guest-book-now, .assistant-launcher):active {
  translate: 0 0; scale: 1; box-shadow: inset 0 2px 4px rgb(23 39 29 / .16);
}
body :is(.button, .nav-book, .guest-book-now, .assistant-launcher):is(:disabled,[aria-disabled="true"]) {
  opacity: .5; cursor: not-allowed; box-shadow: none; translate: none; scale: 1;
}
@media (max-width: 420px) {
  body .stay-assistant :is(.guest-book-now, .assistant-launcher) { width: 0; padding-inline: .6rem; }
  body .site-header .nav-book.direct-book-control { padding-inline: .55rem; }
}
@media (prefers-reduced-motion: reduce) {
  body :is(.button, .nav-book, .guest-book-now, .assistant-launcher) { transition: none; translate: none !important; }
}
html[data-site-motion="paused"] :is(.button, .nav-book, .guest-book-now, .assistant-launcher) {
  transition: none; translate: none !important;
}

/* Book now must not inherit the navigation's animated underline pseudo-element. */
body [data-book-now]::after {
  content: none !important;
  display: none !important;
}
