.contact-icon-definitions {
  position: absolute;
  overflow: hidden;
  pointer-events: none;
}

.sanctuary-home .contact-icon {
  display: inline-block;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px;
  min-height: 24px;
  flex: 0 0 24px;
  vertical-align: middle;
  color: inherit;
}

.sanctuary-home .contact-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.sanctuary-home :is(button, .btn, .cta-btn, .service-cta-btn, .nav-cta-btn, .google-review-primary, .google-review-secondary, .brand-film__book, .savings-details > summary, a[href="#booking"], a[href="#club"], a[href="#share"], a[href="#quote"]) {
  min-width: 48px;
  min-height: 48px;
  box-sizing: border-box;
}

.sanctuary-home a:is([href^="tel:"], [href^="mailto:"], [href^="sms:"], [href^="https://wa.me/"], [href^="https://www.facebook.com/"]) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-width: 48px;
  min-height: 48px;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.65rem 0.8rem !important;
  font-size: max(1rem, 16px) !important;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.sanctuary-home a:is(.btn, .cta-btn, .service-cta-btn, .nav-cta-btn, .google-review-primary, .google-review-secondary, .brand-film__book, [href="#booking"], [href="#club"], [href="#share"], [href="#quote"]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.sanctuary-home :is(.top-bar, .info-item, .booking-note) a:not(.btn),
.sanctuary-home .footer-contact-links a {
  color: var(--link) !important;
}

.sanctuary-home a:is([href^="tel:"], [href^="mailto:"], [href^="sms:"], [href^="https://wa.me/"], [href^="https://www.facebook.com/"]):not(.btn):not(#whatsapp-float):is(:hover, :focus-visible, :active, .is-pressed) {
  color: var(--link-hover) !important;
  background-color: var(--primary-light) !important;
}

.sanctuary-home .top-bar-item > .contact-icon,
.sanctuary-home .contact-label > .contact-icon,
.sanctuary-home #contact :is(h2, h3, .services-badge, div) > .contact-icon,
.sanctuary-home .savings-details > summary {
  color: var(--link);
}

.sanctuary-home #whatsapp-float {
  width: auto;
  height: auto;
  min-height: 48px;
  border-radius: 999px;
  gap: 0.5rem;
  padding: 0.65rem 1rem !important;
  font-weight: 800;
  right: max(16px, env(safe-area-inset-right));
}

.sanctuary-home #whatsapp-float:hover {
  transform: translateY(-2px);
}

.sanctuary-home #chat-widget-toggle-btn {
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(80px + env(safe-area-inset-bottom));
  max-width: calc(100vw - 32px);
  --chat-glow-peak: 0.65;
  isolation: isolate;
  background: linear-gradient(135deg, #8E1E3C, #6D28D9) !important;
  color: #FFFFFF !important;
  border-color: #FFFFFF40 !important;
  box-shadow: 0 6px 18px #190D2866, inset 0 1px 0 #FFFFFF22;
  animation: none;
}

.sanctuary-home #chat-widget-toggle-btn::before {
  content: "";
  position: absolute;
  inset: -3px;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: 0 0 16px 4px #8E1E3C66, 0 0 28px 8px #6D28D955;
  opacity: 0.2;
  animation: catcare-help-glow 2.5s ease-in-out infinite;
}

[data-theme="claro"] .sanctuary-home #chat-widget-toggle-btn {
  --chat-glow-peak: 0.45;
}

.sanctuary-home #chat-widget-toggle-btn:is(:hover, :focus-visible) {
  background: linear-gradient(135deg, #A42648, #7835E3) !important;
  color: #FFFFFF !important;
  box-shadow: 0 8px 22px #190D2877, inset 0 1px 0 #FFFFFF33;
}

.sanctuary-home #chat-widget-toggle-btn:is(:active, .is-pressed) {
  background: linear-gradient(135deg, #74182F, #5920B4) !important;
  color: #FFFFFF !important;
}

.sanctuary-home #chat-widget-toggle-btn:focus-visible {
  outline-color: var(--link-hover);
}

.sanctuary-home #chat-widget-toggle-btn :is(.chat-ai-title, .chat-ai-invite, .chat-ai-avatar, .chat-ai-badge, .chat-ai-spark, .chat-ai-close, .chat-ai-close-label) {
  color: #FFFFFF !important;
}

.sanctuary-home #chat-widget-toggle-btn .chat-ai-avatar {
  background: #FFFFFF14;
}

.sanctuary-home #chat-widget-toggle-btn .chat-ai-badge {
  background: #53175B;
  border-color: #FFFFFF66;
}

.sanctuary-home #chat-widget-toggle-btn[aria-expanded="true"]::before {
  animation: none;
  opacity: 0;
}

@keyframes catcare-help-glow {
  0%, 100% { opacity: 0.2; }
  50% { opacity: var(--chat-glow-peak); }
}

@media (prefers-reduced-motion: reduce) {
  .sanctuary-home #chat-widget-toggle-btn::before {
    animation: none;
    opacity: 0.2;
  }
}

.sanctuary-home #chat-widget-window {
  bottom: calc(152px + env(safe-area-inset-bottom));
  max-height: calc(100dvh - 176px - env(safe-area-inset-bottom));
}

.sanctuary-home .savings-summary {
  margin: 0.8rem 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--texto);
}

.sanctuary-home .savings-details {
  margin: 0.75rem 0 1.25rem;
  padding: 0.25rem 0.85rem;
  border: 1px solid var(--borde);
  border-radius: 0.8rem;
  background: var(--superficie);
  text-align: left;
}

.sanctuary-home .savings-details > summary {
  padding: 0.65rem 0;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}

.sanctuary-home .savings-details > summary:is(:hover, :active) {
  color: var(--link-hover);
}

.sanctuary-home .savings-details p {
  margin: 0.5rem 0 1rem;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--texto);
}

.sanctuary-home :is(a, button, summary):focus-visible {
  outline: 3px solid var(--link-hover);
  outline-offset: 4px;
}

.sanctuary-home .footer-contact-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.sanctuary-home .footer-service-area {
  margin: 0 0 1.25rem;
}

@media (max-width: 700px) {
  .sanctuary-home .top-bar-left,
  .sanctuary-home .top-bar-right {
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
  }

  .sanctuary-home .top-bar-item {
    max-width: 100%;
  }
}
