/* Seção Visita — foto real e mapa na mesma proporção visual do texto.
   Mantém dados de contato, ações de rota e embed acessível. */
.visit.section .visit-layout{
  grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);
  align-items:center;
  gap:clamp(28px,3.5vw,46px);
}
.visit.section .visit-visual{
  display:grid;
  grid-template-rows:244px 178px;
  gap:12px;
  min-width:0;
  min-height:0;
  height:auto;
  align-self:center;
}
.visit.section .visit-photo{
  position:relative;
  min-width:0;
  min-height:0;
  margin:0;
  overflow:hidden;
  background:#c4a18e;
  border:1px solid rgba(110,64,45,.16);
  border-radius:14px;
  box-shadow:0 12px 26px rgba(49,30,23,.09);
}
.visit.section .visit-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 29%;
}
.visit.section .visit-photo::after{
  content:"";
  position:absolute;
  inset:58% 0 0;
  background:linear-gradient(transparent,rgba(24,17,16,.49));
  pointer-events:none;
}
.visit.section .visit-photo figcaption{
  position:absolute;
  z-index:1;
  bottom:15px;
  left:17px;
  right:17px;
  color:#fff;
  font-size:12px;
  font-weight:700;
  line-height:1.4;
  text-shadow:0 1px 9px rgba(0,0,0,.48);
}
.visit.section .visit-visual .visit-map{
  min-height:0;
  height:100%;
  border-radius:12px;
  overflow:hidden;
  border:1px solid #e4d0c1;
}
.visit.section .visit-visual .visit-map>a{
  left:13px;
  bottom:12px;
  border-radius:8px;
  padding:11px 13px;
}
@media(max-width:1100px) and (min-width:881px){
  .visit.section .visit-layout{
    grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    gap:30px;
  }
  .visit.section .visit-visual{grid-template-rows:232px 170px;}
}
@media(max-width:880px){
  .visit.section .visit-layout{
    grid-template-columns:minmax(0,1fr);
    gap:25px;
  }
  .visit.section .visit-visual{
    grid-template-rows:245px 185px;
    min-height:0;
  }
}
@media(max-width:640px){
  .visit.section .visit-visual{
    grid-template-rows:210px 172px;
    gap:10px;
  }
  .visit.section .visit-photo{border-radius:12px;}
  .visit.section .visit-photo img{object-position:50% 27%;}
  .visit.section .visit-photo figcaption{
    left:14px;
    right:14px;
    bottom:13px;
    font-size:11px;
  }
  .visit.section .visit-visual .visit-map{
    min-height:0;
    border-radius:11px;
  }
  .visit.section .visit-visual .visit-map>a{
    left:10px;
    bottom:10px;
    padding:10px 11px;
  }
}
@media(max-width:360px){
  .visit.section .visit-visual{grid-template-rows:190px 165px;}
}
