/* Reserva Varde Goa — responsive alignment pass, 2026-10-21.
   Shared by public client pages; preserves existing map/modal interactions. */
:root { --rv-responsive-gutter: clamp(16px, 3vw, 44px); }
html { max-width: 100%; }
body { max-width: 100%; }
*, *::before, *::after { box-sizing: border-box; }
img, video, picture, canvas { max-width: 100%; }
img { object-position: center; }
:where(.container, .rv-container, .section-content, .rv-section, .grid, .row, .card, .rv-card, .gallery-card) { min-width: 0; }
:where(h1, h2, h3, p, .rv-title, .section-title, .card-title) { overflow-wrap: break-word; }
:where(input, select, textarea, button) { max-width: 100%; }
:where(.rv-card, .loc-gallery-card, .wellness-gallery-item) { min-width: 0; }
:where(.rv-card) { display: flex; flex-direction: column; }
:where(.rv-card img, .loc-img-wrap img) { object-fit: cover; }
#rv-cards-mount > *, .wellness-gallery > *, .philosophy-cards-grid > * { min-width: 0; }
:where(.rv-card) .btn, :where(.rv-card) .rv-card-cta { max-width: 100%; }
@media (min-width: 993px) {
  .loc-gallery { justify-content: center; align-items: stretch; }
  .loc-gallery-card { width: calc((100% - 3rem) / 3); min-width: 0; }
}
@media (max-width: 1199px) {
  .philosophy-header { grid-template-columns: minmax(0, .8fr) minmax(0, 2.2fr); gap: clamp(20px, 3vw, 36px); }
}
@media (max-width: 992px) {
  .loc-gallery-card { width: calc((100% - 1.5rem) / 2); min-width: 0; }
  .wellness-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rv-cards-mount { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: clamp(16px, 3vw, 28px) !important; }
}
@media (max-width: 767px) {
  .philosophy-header { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .philosophy-cards-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  #rv-cards-mount { grid-template-columns: minmax(0, 1fr) !important; gap: 20px !important; width: 100%; }
  .loc-gallery { gap: 20px; }
  .loc-gallery-card { width: 100%; min-width: 0; }
  .wellness-gallery { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .wellness-gallery-item { width: 100%; }
  .rv-section, section { scroll-margin-top: 84px; }
  .estate-cta-buttons { flex-wrap: wrap; }
  .estate-cta-buttons > * { max-width: 100%; }
  :where(.rv-card, .loc-gallery-card) { margin-inline: auto; }
}
@media (max-width: 430px) {
  .loc-gallery-card { width: 100%; }
  .rv-card { width: 100%; }
  .philosophy-header h2, .section-title { max-width: 100%; }
  .estate-cta-buttons { align-items: stretch; }
  .estate-cta-buttons > * { width: 100%; }
}
