/* Body-level slot: natural flow until measured; no legacy navigation classes. */
[data-kei-cta-slot] {
  margin: 0;
  padding: 0;
}
[data-kei-cta-slot][hidden],
[data-kei-cta-slot] ~ [data-kei-cta-slot] {
  display: none;
}
[data-kei-cta-slot][data-ready="true"] {
  block-size: var(--kei-cta-height);
}
.kei-global-cta#kei-global-cta {
  --kei-cta-css-ready: 1;
  --kei-red: #8b2332;
  --kei-blue: #165d98;
  --kei-edge: 8px;
  --kei-gap: 6px;
  --kei-line-size: 48px;
  --kei-max-width: 640px;
  box-sizing: border-box;
  inline-size: 100%;
  max-inline-size: var(--kei-max-width);
  margin: 0 auto;
  float: none;
  height: auto;
  min-height: 0;
  max-height: none;
  border: 0;
  opacity: 1;
  visibility: visible;
  padding: var(--kei-edge);
  padding-inline-start: max(var(--kei-edge), env(safe-area-inset-left, 0px));
  padding-inline-end: max(var(--kei-edge), env(safe-area-inset-right, 0px));
  padding-block-end: calc(var(--kei-edge) + env(safe-area-inset-bottom, 0px));
  background: #fff;
  color: #34252a;
  border-block-start: 1px solid #e8d8da;
  box-shadow: 0 -2px 12px #34252a14;
  font-family: system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.4;
  text-align: center;
}
.kei-global-cta#kei-global-cta *, .kei-global-cta#kei-global-cta *::before, .kei-global-cta#kei-global-cta *::after {
  box-sizing: border-box;
}
[data-kei-cta-slot][data-ready="true"] > .kei-global-cta#kei-global-cta {
  position: fixed;
  z-index: 100;
  inset-block-end: 0;
  inset-inline-start: 50%;
  transform: translateX(-50%);
}
html:has([data-kei-cta-slot][data-ready="true"]) {
  scroll-padding-block-end: calc(var(--kei-global-cta-height, 0px) + 8px);
}
.kei-global-cta#kei-global-cta .kei-global-cta__bookings,
.kei-global-cta#kei-global-cta .kei-global-cta__contact {
  display: grid;
  gap: var(--kei-gap);
  align-items: stretch;
}
.kei-global-cta#kei-global-cta .kei-global-cta__bookings {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.kei-global-cta#kei-global-cta .kei-global-cta__contact {
  grid-template-columns: var(--kei-line-size) minmax(0, 1fr);
  margin-block-start: var(--kei-gap);
}
.kei-global-cta#kei-global-cta a {
  position: static;
  float: none;
  width: auto;
  height: auto;
  max-width: none;
  max-height: none;
  opacity: 1;
  visibility: visible;
  box-shadow: none;
  letter-spacing: normal;
  text-indent: 0;
  text-transform: none;
  background-image: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-inline-size: 0;
  min-block-size: 48px;
  padding: 6px 8px;
  margin: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  font: inherit;
  font-weight: 700;
  color: var(--kei-red);
  text-decoration: none;
  overflow-wrap: anywhere;
  touch-action: manipulation;
  transition: none;
}
.kei-global-cta#kei-global-cta .kei-global-cta__booking {
  flex-wrap: wrap;
  column-gap: .35em;
  background: var(--kei-blue);
  color: #fff;
}
.kei-global-cta#kei-global-cta .kei-global-cta__calendar-icon {
  display: block;
  flex: 0 0 18px;
  inline-size: 18px;
  block-size: 18px;
}
.kei-global-cta#kei-global-cta .kei-global-cta__line {
  padding: 0;
  align-self: center;
  inline-size: var(--kei-line-size);
  background: #fff;
}
.kei-global-cta#kei-global-cta .kei-global-cta__line img {
  display: block;
  inline-size: 32px;
  block-size: 32px;
  max-inline-size: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.kei-global-cta#kei-global-cta .kei-global-cta__phone {
  /* Phone reflow */
  display: flex;
  flex-wrap: wrap;
  align-content: center;
  column-gap: 6px;
  row-gap: 0;
  padding: 3px 8px;
  background: var(--kei-red);
  border-color: var(--kei-red);
  color: #fff;
}
.kei-global-cta#kei-global-cta .kei-global-cta__phone-icon {
  flex: 0 0 20px;
  display: block;
  inline-size: 20px;
  block-size: 20px;
}
.kei-global-cta#kei-global-cta .kei-global-cta__label {
  flex: 0 0 auto;
  font-size: .875rem;
  line-height: 1.2;
}
.kei-global-cta#kei-global-cta .kei-global-cta__number {
  flex: 0 1 auto;
  min-inline-size: 0;
  max-inline-size: 100%;
  font-family: Arial, sans-serif;
  font-size: 1.25rem;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.kei-global-cta#kei-global-cta .kei-global-cta__note {
  flex-basis: 100%;
  font-size: .6875rem;
  line-height: 1.2;
  font-weight: 400;
  color: #fff;
}
.kei-global-cta#kei-global-cta a:focus-visible {
  /* Legacy site CSS sets a:focus { outline: none !important }. */
  outline: 3px solid #163e84 !important;
  outline-offset: 2px;
}
@media (hover: hover) and (pointer: fine) {
  .kei-global-cta#kei-global-cta a:hover { text-decoration: underline; }
}
@media print {
  [data-kei-cta-slot] { display: none; }
}

/* Prevent legacy link arrows, global span spacing and image sizing from leaking in. */
.kei-global-cta#kei-global-cta a::before,
.kei-global-cta#kei-global-cta a::after { content: none; display: none; }
.kei-global-cta#kei-global-cta span {
  position: static;
  float: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  letter-spacing: normal;
  text-indent: 0;
}
.kei-global-cta#kei-global-cta svg {
  position: static;
  float: none;
  margin: 0;
  padding: 0;
  border: 0;
  max-width: none;
  max-height: none;
  color: inherit;
}

/* Keep the existing scroll-to-top action above the measured bar. */
html:has([data-kei-cta-slot][data-ready="true"]) .btn-back-to-top {
  bottom: calc(var(--kei-global-cta-height, 0px) + 12px);
}
