/* Componentes comuns derivados da home: navegação, contato e rodapé. */
.header-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
}
.header-brand { grid-column: 1; justify-self: start; margin: 0; }
.header-nav { grid-column: 2; justify-self: center; }
.header-inner > .btn-whatsapp-header { grid-column: 3; justify-self: end; margin: 0; }
.header-nav-list { justify-content: center; }
.header-toggle-btn { grid-column: 3; justify-self: end; }
.floating-header, .floating-header.scrolled, .mobile-menu-dropdown {
  background: var(--brand-paper);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.hero-floating-badge { background: var(--contact-white, #fff); backdrop-filter: none; }

.mobile-menu-dropdown {
  display: flex;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-.5rem);
  max-height: min(75vh, calc(100dvh - 7rem));
  overflow-y: auto;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.mobile-menu-dropdown.active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

a.contact-action,
a.contact-action:link,
a.contact-action:visited,
a.contact-action:focus-visible,
a.contact-action:active {
  color: var(--contact-white, #fff) !important;
  background: var(--color-whatsapp, #075e54) !important;
  border-color: var(--color-whatsapp, #075e54) !important;
  text-decoration: none;
}
a.contact-action:hover {
  color: var(--contact-white, #fff) !important;
  background: var(--color-whatsapp-hover, #064c44) !important;
  border-color: var(--color-whatsapp-hover, #064c44) !important;
}
a.contact-action :where(span, svg) { color: inherit !important; }
a.contact-action svg:not([fill="none"]) { fill: currentColor; }
.contact-action { transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.mobile-menu-dropdown .contact-action:hover { padding-left: 1rem; }

.site-footer .footer-grid,
.site-footer .footer-col,
.site-footer p,
.site-footer li,
.site-footer .footer-links,
.site-footer .footer-bottom { text-align: left; }
.site-footer .footer-col { min-width: 0; align-items: stretch; }
.site-footer .footer-contact-link { justify-content: flex-start; text-align: left; }
.site-footer .footer-contact-link span { overflow-wrap: anywhere; }
.site-footer .footer-logo { margin: 0; max-width: 100%; object-fit: contain; object-position: left center; }
.site-footer .footer-bottom { align-items: flex-start; }
.site-footer .footer-links a:hover { padding-left: 0; }
.site-footer .footer-contact-link:hover { transform: none; }

.contact-cards-list .contact-card { justify-content: flex-start; text-align: left; }
.contact-cards-list .contact-card-info,
.contact-cards-list .contact-card-title,
.contact-cards-list .contact-card-info p { text-align: left; }
.contact-cards-list .contact-item { justify-content: flex-start; }
.contact-cards-list .contact-details,
.contact-cards-list .contact-details p { text-align: left; }

.faq-panel { transition: max-height .25s ease; }
.header-logo-img:hover, .about-image-wrapper:hover .about-img,
.hero-image-wrapper:hover .hero-img { transform: none; }

.booking-terms-page main { max-width: 960px; margin: 0 auto; padding: 120px 24px 64px; }
.booking-terms-page .card { background: var(--brand-paper); border: 1px solid var(--brand-rose); border-radius: 16px; padding: clamp(24px, 5vw, 48px); }
.booking-terms-page .card h1 { color: var(--brand-wine); font-size: clamp(2rem, 4vw, 3rem); line-height: 1.15; margin-bottom: 1.5rem; }
.booking-terms-page .card p { margin-bottom: 1.2rem; }
.booking-terms-page .button { padding: .85rem 1.5rem; border-radius: 999px; }

@media (max-width: 1150px) {
  .header-inner { display: flex; gap: .75rem; }
  .header-brand { margin-right: auto; }
  .header-toggle-btn { order: 2; }
  .header-inner > .btn-whatsapp-header { order: 3; margin: 0; }
}
@media (max-width: 768px) {
  .site-footer .footer-bottom { align-items: flex-start; }
  .booking-terms-page main { padding: 104px 20px 44px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
