/* Local SEO pilot: Vila Mariana */
.local-hero {
  position: relative;
  background-color: #6b3f2a;
  color: #fff;
}

.local-hero > .container { position: relative; z-index: 2; }

.local-hero .breadcrumbs,
.local-hero .breadcrumbs a { color: rgba(255,255,255,.82); }

.local-hero h1 { max-width: 900px; }
.local-hero .lead { max-width: 760px; color: rgba(255,255,255,.9); }

.local-intro { max-width: 780px; }
.local-intro p { margin-bottom: 1rem; }

.local-map { min-width: 0; }
.local-map iframe {
  display: block;
  width: 100%;
  min-height: 360px;
  border: 0;
  border-radius: 8px;
  box-shadow: 0 12px 28px rgba(45,45,45,.12);
}

.local-map-caption {
  margin-top: .65rem;
  color: var(--color-muted, #666);
  font-size: .9rem;
}

.local-service-grid { align-items: start; }
.local-service-card { height: 100%; display: flex; flex-direction: column; }
.local-service-card p { flex: 1; }
.local-service-card .text-link { margin-top: 1rem; }

.local-gallery-section { overflow: hidden; }
.local-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  max-width: 1120px;
  margin-inline: auto;
}
.local-gallery--count-1 { max-width: 480px; }
.local-gallery--count-2 { max-width: 760px; }
.local-gallery-item { margin: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-card); }
.local-gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  background: #f7f3eb;
}
.local-gallery-item figcaption { padding: .7rem .85rem .8rem; color: var(--color-muted); font-size: .9rem; font-weight: 700; }
.local-gallery-group { margin-top: 2rem; }
.local-gallery-group h3 { margin-bottom: .8rem; }
.local-gallery-group:has(> .local-gallery > .local-gallery-item:only-child) .local-gallery {
  max-width: 480px;
  grid-template-columns: 1fr;
}
.local-gallery-group:has(> .local-gallery > .local-gallery-item:nth-child(2):last-child) .local-gallery {
  max-width: 760px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.local-proof {
  border-left: 4px solid var(--color-secondary, #c9a96e);
  padding: 1rem 1.25rem;
  background: rgba(201,169,110,.12);
  border-radius: 0 8px 8px 0;
}

.local-faq { max-width: 900px; margin-inline: auto; }
.local-faq details { border-bottom: 1px solid rgba(107,63,42,.18); padding: 1rem 0; }
.local-faq summary { cursor: pointer; font-weight: 700; color: var(--color-primary, #6b3f2a); }
.local-faq p { margin: .7rem 0 0; }

.service-local-hero {
  background: #f5ecd7;
  color: var(--color-text, #2d2d2d);
}
.service-local-hero .breadcrumbs,
.service-local-hero .breadcrumbs a { color: var(--color-primary, #6b3f2a); }
.service-local-hero h1 { color: var(--color-text, #2d2d2d); }
.service-local-hero .lead { color: var(--color-muted, #6a625b); }
.service-local-hero h1 { max-width: 900px; }

.service-local-list { columns: 2; column-gap: 2rem; }
.service-local-list li { break-inside: avoid; margin-bottom: .75rem; }

.local-links { display: flex; flex-wrap: wrap; gap: .65rem; }
.local-links a { display: inline-flex; align-items: center; min-height: 42px; padding: .55rem .8rem; border: 1px solid rgba(107,63,42,.2); border-radius: 6px; color: var(--color-primary, #6b3f2a); font-weight: 700; text-decoration: none; background: #fff; }
.local-links a:hover { background: #f5ecd7; }

@media (max-width: 700px) {
  .local-map iframe { min-height: 300px; }
  .service-local-list { columns: 1; }
}

@media (max-width: 639px) {
  .local-gallery-group:has(> .local-gallery > .local-gallery-item:nth-child(2):last-child) .local-gallery {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 640px) {
  .local-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .local-gallery--count-1 { grid-template-columns: 1fr; }
  .local-gallery--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .local-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .local-gallery--count-1 { grid-template-columns: 1fr; }
  .local-gallery--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
