/* "Book Online" call-to-action in the site header (all pages). Opens /book/ in a new tab. */

.book-cta,
.book-cta:hover,
.book-cta:focus,
.book-cta-mobile,
.book-cta-mobile:hover,
.book-cta-mobile:focus {
  text-decoration: none;
}

/* ---- Desktop / tablet card ---- */
.header-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 28px;
}
.header-right .header-slogan { flex: none; align-self: flex-start; }

.book-cta {
  position: relative;
  overflow: hidden;
  flex: 0 1 380px;
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 2px 0;
  padding: 18px 22px;
  border-radius: 16px;
  border: 2px solid #f3c25b;
  background: linear-gradient(135deg, rgba(40, 6, 4, .45), rgba(40, 6, 4, .15));
  box-shadow: 0 8px 24px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .12);
  color: #fff;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.book-cta:hover,
.book-cta:focus {
  color: #fff;
  transform: translateY(-3px);
  border-color: #ffd877;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .18);
}
.book-cta:focus-visible { outline: 3px solid #ffd877; outline-offset: 3px; }

/* Soft light sweep across the card every few seconds. */
.book-cta::after {
  content: "";
  position: absolute;
  top: 0;
  left: -60%;
  width: 40%;
  height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .16), transparent);
  transform: skewX(-20deg);
  animation: book-cta-shine 6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes book-cta-shine {
  0%, 70% { left: -60%; }
  100% { left: 130%; }
}

.book-cta-icon {
  flex: none;
  width: 66px;
  height: 66px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #ffe08a, #eba33d);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .3), inset 0 -2px 0 rgba(0, 0, 0, .12);
  color: #8c221d;
  font-size: 30px;
}

.book-cta-text { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.book-cta-eyebrow {
  font-family: "Open Sans", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #ffd877;
}
.book-cta-title {
  font-family: "Oswald", sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .01em;
  color: #fff;
  text-shadow: 0 2px 4px rgba(0, 0, 0, .35);
  white-space: nowrap;
}
.book-cta-sub {
  font-family: "Open Sans", sans-serif;
  font-size: 13px;
  color: #f7e7c4;
  margin: 2px 0 10px;
  white-space: nowrap;
}
.book-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffe08a, #eba33d);
  color: #6c1814;
  font-family: "Oswald", sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
}
.book-cta-btn .fa { transition: transform .2s ease; }
.book-cta:hover .book-cta-btn .fa,
.book-cta:focus .book-cta-btn .fa { transform: translateX(4px); }

/* Medium screens: slightly smaller card. */
@media (min-width: 992px) and (max-width: 1199px) {
  .header-right { gap: 18px; }
  .book-cta { flex: none; padding: 14px 18px; gap: 12px; }
  .book-cta-icon { width: 46px; height: 46px; font-size: 21px; }
  .book-cta-title { font-size: 22px; }
  .book-cta-sub { display: none; }
  .book-cta-eyebrow { margin-bottom: 2px; }
  .book-cta-title { margin-bottom: 8px; }
}

/* Tablets: phone number on top, compact card underneath. */
@media (min-width: 768px) and (max-width: 991px) {
  .header-right { flex-direction: column-reverse; align-items: flex-end; gap: 12px; }
  .header-right .header-slogan { align-self: flex-end; }
  .book-cta { flex: none; padding: 10px 14px; gap: 12px; border-radius: 12px; }
  .book-cta-icon { width: 42px; height: 42px; font-size: 19px; }
  .book-cta-eyebrow, .book-cta-sub { display: none; }
  .book-cta-title { font-size: 22px; margin-bottom: 6px; }
  .book-cta-btn { font-size: 13px; padding: 4px 12px; }
}

/* ---- Phones: full-width button under the logo ---- */
.book-cta-mobile {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 0 16px;
  padding: 13px 18px;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffe08a, #eba33d);
  border: 2px solid #fff3cf;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .3);
  color: #6c1814;
  font-family: "Oswald", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.book-cta-mobile:hover,
.book-cta-mobile:focus { color: #6c1814; }
.book-cta-mobile .fa-angle-right { font-size: 24px; }

@media (prefers-reduced-motion: reduce) {
  .book-cta, .book-cta-btn .fa { transition: none; }
  .book-cta::after { animation: none; display: none; }
  .book-cta:hover, .book-cta:focus { transform: none; }
}
