/* Contact actions stay anchored beneath the hero content and outside the slide animation. */
.hero-carousel .ref-hero-layout { padding-bottom: 104px; }
.hero-contact {
  position: absolute;
  z-index: 3;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: min(100% - 36px, 690px);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.hero-contact__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 48px;
  min-width: 0;
  padding: 11px 20px;
  border: 1px solid #e3c6a8;
  border-radius: 999px;
  background: #fffdfa;
  color: #703711;
  box-shadow: 0 6px 20px #6836171b;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.hero-contact__button svg { width: 19px; height: 19px; flex: 0 0 auto; }
/* A brief, intermittent ring moves only the handset, keeping the button stable. */
@keyframes hero-phone-ring {
  0%, 12%, 29%, 100% { transform: rotate(0deg); }
  14%, 20%, 26% { transform: rotate(-11deg); }
  17%, 23% { transform: rotate(11deg); }
}
@media (prefers-reduced-motion: no-preference) {
  .hero-contact__button--phone svg {
    transform-origin: center;
    animation: hero-phone-ring 5s ease-in-out infinite;
  }
}
.hero-contact__button--whatsapp { background: #91400e; border-color: #91400e; color: #fff; }
.hero-contact__button:hover { background: #fff1e3; color: #6f310b; box-shadow: 0 9px 22px #6836172a; transform: translateY(-2px); }
.hero-contact__button--whatsapp:hover { background: #71300a; color: #fff; }
.hero-contact__button:focus-visible, .footer-social a:focus-visible { outline: 3px solid #9e430c; outline-offset: 3px; }
.footer-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.footer-social a { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 9px 12px; border: 1px solid #e8d5c3; border-radius: 999px; background: #fff; color: #7e3a11; font-size: 12px; font-weight: 700; text-decoration: none; }
.footer-social a:hover { background: #fff1e3; color: #6f310b; }
.footer-social svg { width: 17px; height: 17px; flex: none; }
@media (max-width: 760px) {
  .hero-carousel .ref-hero-layout { padding-bottom: 22px; }
  .hero-contact { position: relative; inset: auto; transform: none; width: calc(100% - 36px); margin: 0 auto; padding: 0 0 25px; flex-wrap: wrap; }
  .hero-contact__button { flex: 1 1 140px; padding: 10px 12px; }
}
@media (prefers-reduced-motion: reduce) { .hero-contact__button { transition: none; } .hero-contact__button:hover { transform: none; } }

/* Phone links in the lower contact section use the same icon as the hero. */
.contact-phone-link { display: inline-flex; align-items: center; gap: 9px; }
.contact-phone-icon { width: 18px; height: 18px; flex: 0 0 auto; }

/* A clear, compact call banner sits immediately above the footer. */
.phone-banner-section { background: #f8f7f2; padding: 0 0 16px; }
.phone-banner { display: flex; align-items: center; gap: 18px; width: min(100%, 390px); margin-inline-start: auto; min-height: 94px; padding: 18px 26px; border: 1px solid #ead3bd; border-radius: 18px; background: #fffaf4; color: #703711; text-decoration: none; box-shadow: 0 8px 24px #68361710; transition: background .2s ease, box-shadow .2s ease; }
.phone-banner:hover { background: #fff3e5; box-shadow: 0 10px 28px #68361720; }
.phone-banner:focus-visible { outline: 3px solid #9e430c; outline-offset: 3px; }
.phone-banner__icon { display: grid; place-items: center; width: 54px; height: 54px; flex: none; border-radius: 50%; background: #91400e; color: #fff; }
.phone-banner__icon .contact-phone-icon { width: 23px; height: 23px; }
.phone-banner__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.phone-banner__label { font-size: 10px; font-weight: 800; letter-spacing: .14em; color: #9a6849; }
.phone-banner__copy strong { color: #71330f; font-size: clamp(23px, 2.2vw, 30px); line-height: 1.1; }
.phone-banner__arrow { margin-inline-start: auto; font-size: 24px; line-height: 1; }
@media (max-width: 760px) { .phone-banner-section { padding: 0 0 16px; } .phone-banner { min-height: 82px; padding: 14px 17px; gap: 13px; } .phone-banner__icon { width: 46px; height: 46px; } }
@media (prefers-reduced-motion: reduce) { .phone-banner { transition: none; } }
footer .phone-banner .phone-banner__icon { color: #fff; }
footer .phone-banner .phone-banner__label { color: #9a6849; }
footer .phone-banner .phone-banner__arrow { color: #703711; font-size: 24px; letter-spacing: 0; }

/* Keep the call banner inside the footer grid without adding a desktop row. */
.footer-main:has(.phone-banner-section) { position: relative; }
.footer-main .phone-banner-section { position: absolute; inset-inline-end: 0; bottom: 32px; width: min(290px, 35%); padding: 0; background: transparent; }
.footer-main .phone-banner-section .container { width: 100%; max-width: none; }
.footer-main .phone-banner { width: 100%; }
@media (max-width: 760px) {
  .footer-main:has(.phone-banner-section) { padding-bottom: 16px; }
  .footer-main .phone-banner-section { position: static; width: 100%; grid-column: 1 / -1; }
  .footer-main .phone-banner { width: min(100%, 290px); }
}
