.site-footer {
  position: relative;
  isolation: isolate;
  padding: 65px 28px 28px;
  scroll-margin-top: 28px;
}
.site-footer::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 -24px;
  background: var(--ivory) url('assets/rodape-background-optimized.webp') center / cover no-repeat;
  mask-image: linear-gradient(transparent, #000 15%, #000 88%, transparent);
  pointer-events: none;
}
.footer-columns { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr) minmax(0, 1.25fr); gap: 38px; }
.footer-brand { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.footer-logo { display: block; width: min(100%, 340px); height: auto; object-fit: contain; }
.footer-tagline { margin: 18px 0 24px; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(22px, 1.9vw, 29px); line-height: 1.3; letter-spacing: -.025em; text-align: center; max-width: 370px; }
.footer-instagram { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; font-size: 18px; color: #8c622c; text-decoration: none; max-width: 100%; line-height: 1.5; }
.footer-instagram svg { flex: 0 0 35px; width: 35px; height: 35px; }
.footer-instagram span { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.footer-location, .footer-attendance { border-left: 1px solid #b99a6f; padding-left: 38px; min-width: 0; }
.site-footer h2 { margin: 12px 0 32px; font-family: 'Playfair Display', Georgia, serif; font-weight: 400; font-size: clamp(32px, 2.9vw, 45px); line-height: 1.18; letter-spacing: -.05em; }
.site-footer h2 em { color: #9b6d30; font-weight: 400; }
.footer-address { display: flex; gap: 20px; align-items: flex-start; margin-top: 48px; }
.footer-address svg { flex: 0 0 34px; width: 34px; height: 43px; color: #9b6d30; }
.footer-address address { font-style: normal; font-size: clamp(20px, 1.7vw, 26px); line-height: 1.5; letter-spacing: -.01em; }
.footer-directions { display: inline-flex; align-items: center; justify-content: center; gap: 20px; border: 1px solid #9b6d30; color: #8c622c; border-radius: 6px; min-height: 56px; padding: 12px 22px; margin: 42px 0 0 20px; font-size: 21px; line-height: 1.4; text-decoration: none; max-width: calc(100% - 20px); transition: background .18s, color .18s; }
.footer-directions svg { width: 26px; height: 26px; flex: 0 0 26px; }
.footer-directions:hover { background: #eee2cf; }
.footer-hours { margin: 0; font-size: clamp(17px, 1.4vw, 22px); line-height: 1.5; }
.footer-hours > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 14px; padding: 13px 0; }
.footer-hours > div + div { border-top: 1px solid #d0b894; }
.footer-hours dt, .footer-hours dd { margin: 0; }
.footer-hours dd { white-space: nowrap; }
.footer-team { margin-top: 25px; padding-top: 26px; border-top: 1px solid #b99a6f; }
.site-footer h3 { margin: 0 0 14px; font-family: 'Playfair Display', Georgia, serif; font-weight: 400; font-size: clamp(24px, 2vw, 31px); line-height: 1.3; letter-spacing: -.035em; }
.footer-telephone { display: inline-flex; gap: 16px; align-items: center; min-height: 44px; font-size: clamp(19px, 1.65vw, 25px); line-height: 1.5; text-decoration: none; max-width: 100%; }
.footer-telephone svg { flex: 0 0 30px; width: 30px; height: 30px; color: #9b6d30; }
.footer-telephone span { white-space: nowrap; }
.footer-whatsapp { width: 100%; white-space: normal; font-size: 18px; line-height: 1.4; text-align: center; text-decoration: none; border-radius: 12px; margin-top: 20px; padding: 16px 18px; }
.footer-whatsapp svg { flex: 0 0 34px; width: 34px; height: 34px; }
.footer-bottom { margin-top: 55px; padding-top: 20px; border-top: 1px solid #b99a6f; display: flex; justify-content: space-between; align-items: baseline; gap: 18px 28px; }
.footer-bottom p { color: #6d6054; font-size: 16px; line-height: 1.6; margin: 0; }
.footer-bottom a { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; font-size: 17px; line-height: 1.4; color: #8c622c; text-decoration: none; }
.footer-bottom svg { flex: 0 0 23px; width: 23px; height: 28px; }
.footer-instagram, .footer-telephone, .footer-bottom a { transition: color .18s; }
.footer-instagram:hover, .footer-telephone:hover, .footer-bottom a:hover { color: #593715; text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 1190px) {
  .site-footer { padding: 45px 12px 26px; }
  .footer-columns { gap: 25px; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr) minmax(0, 1.25fr); }
  .footer-location, .footer-attendance { padding-left: 25px; }
  .site-footer h2 { font-size: 34px; margin-bottom: 24px; }
  .footer-address { gap: 14px; margin-top: 25px; }
  .footer-address address { font-size: 21px; }
  .footer-address svg { width: 28px; height: 36px; flex-basis: 28px; }
  .footer-instagram { font-size: 16px; gap: 12px; }
  .footer-directions { margin-left: 0; max-width: 100%; padding: 12px 18px; font-size: 19px; gap: 14px; }
  .footer-hours { font-size: 17px; }
  .footer-hours > div { gap: 10px; }
  .footer-telephone { font-size: 20px; gap: 12px; }
  .footer-whatsapp { font-size: 16px; padding: 15px 12px; }
}
@media (max-width: 1000px) {
  .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .footer-brand { grid-column: 1 / -1; border-bottom: 1px solid #b99a6f; padding-bottom: 32px; }
  .footer-logo { width: 250px; }
  .footer-tagline { margin-bottom: 14px; font-size: 25px; }
  .footer-location { border-left: 0; padding-left: 0; }
  .footer-attendance { padding-left: 30px; }
  .site-footer h2 { font-size: 36px; }
  .footer-bottom { margin-top: 38px; }
}
@media (max-width: 640px) {
  .site-footer { padding: 30px 0 22px; }
  .site-footer::before { inset-inline: -20px; }
  .footer-columns { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .footer-brand { grid-column: auto; padding-bottom: 30px; }
  .footer-logo { width: min(250px, 100%); }
  .footer-tagline { max-width: 330px; font-size: 24px; margin: 18px 0; }
  .footer-instagram { font-size: 17px; gap: 14px; }
  .footer-location, .footer-attendance { border: 0; padding: 0; }
  .footer-attendance { border-top: 1px solid #b99a6f; padding-top: 30px; }
  .site-footer h2 { font-size: clamp(32px, 8vw, 40px); margin: 0 0 24px; }
  .footer-address { margin-top: 0; gap: 18px; }
  .footer-address address { font-size: 21px; }
  .footer-directions { width: 100%; margin-top: 26px; }
  .footer-hours { font-size: 18px; }
  .footer-hours > div { gap: 12px; padding: 13px 0; }
  .footer-team { margin-top: 22px; padding-top: 24px; }
  .site-footer h3 { font-size: 27px; }
  .footer-telephone { font-size: 21px; }
  .footer-whatsapp { font-size: 17px; margin-top: 18px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 35px; padding-top: 20px; }
  .footer-bottom p { font-size: 14px; }
  .footer-bottom a { font-size: 16px; }
}
