/* Un único mosaico compacto acompaña la información de la casa; cada foto se amplía en el visor. */
.house-grid { grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); align-items: start; }
.house-copy { padding-top: .6rem; }
.house-copy > p { max-width: 34rem; }
.house-highlights { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(4, 104px); gap: 8px; }
.house-highlights button { min-height: 0; padding: 0; overflow: hidden; border: 0; background: #d9d4ca; cursor: zoom-in; }
.house-highlights button:first-child { grid-column: span 2; grid-row: span 2; }
.house-highlights img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s; }
.house-highlights button:hover img { transform: scale(1.035); }
.environment-details { margin: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.25); }
.environment-details details { border-bottom: 1px solid rgba(255,255,255,.25); padding: .65rem 0; }
.environment-details summary { cursor: pointer; font-weight: bold; color: #fffdf9; }
.environment-details p { margin: .65rem 0 .2rem; font-size: .92rem; }
.call-button { display: inline-flex; align-items: center; gap: .65rem; width: fit-content; margin: 1.3rem 0 .6rem; padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; background: rgba(255,255,255,.08); font: 700 .9rem/1 Arial,sans-serif; letter-spacing: .01em; }
.call-button svg { width: 1.15rem; height: 1.15rem; fill: currentColor; }
.call-button strong { font-size: 1rem; }
#lightbox { overflow: visible; }
#lightbox .lightbox-frame { display: grid; place-items: center; }
#lightbox .lightbox-count { position: absolute; left: 50%; bottom: .7rem; transform: translateX(-50%); margin: 0; padding: .2rem .6rem; border-radius: 999px; background: rgba(0,0,0,.65); color: white; font-size: .8rem; }
#lightbox .lightbox-nav { position: absolute; z-index: 2; top: 50%; width: 2.7rem; height: 2.7rem; transform: translateY(-50%); border: 0; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--ink); font: 2rem/1 var(--serif); cursor: pointer; box-shadow: 0 3px 16px rgba(0,0,0,.25); }
#lightbox .lightbox-nav:hover { background: white; }
#lightbox .lightbox-prev { left: -1.35rem; }
#lightbox .lightbox-next { right: -1.35rem; }
@media (max-width: 600px) { #lightbox .lightbox-nav { top: auto; bottom: .6rem; transform: none; } #lightbox .lightbox-prev { left: .6rem; } #lightbox .lightbox-next { right: .6rem; } }
.location-gallery { display: block; min-height: 330px; }
.location-gallery button { overflow: hidden; border: 0; padding: 0; background: #ddd; cursor: zoom-in; }
.location-gallery button:first-child { width: 100%; height: 100%; }
.location-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.location-gallery button:hover img { transform: scale(1.04); }
@media (max-width: 800px) { .house-grid { grid-template-columns: 1fr; } .house-highlights { grid-template-rows: repeat(4, 88px); } .location-gallery { min-height: 360px; } }

/* Movimiento corto y discreto: orienta la lectura sin distraer. */
@media (prefers-reduced-motion: no-preference) {
  .motion-ready [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.75,.25,1); }
  .motion-ready [data-reveal].is-visible { opacity: 1; transform: none; }
  .motion-ready .hero-photo img { animation: hero-settle 1.1s cubic-bezier(.2,.75,.25,1) both; }
  .button, .nav-contact { transition: transform .22s ease, background-color .22s ease, box-shadow .22s ease !important; }
  .button:hover, .nav-contact:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(32,52,44,.18); }
  .text-link span { display: inline-block; transition: transform .22s ease; }
  .text-link:hover span { transform: translateX(4px); }
  .environment-details details { transition: background-color .25s ease, padding-left .25s ease; }
  .environment-details details[open] { background: rgba(255,255,255,.06); padding-left: .75rem; }
  @keyframes hero-settle { from { opacity: 0; transform: scale(1.035); } to { opacity: 1; transform: scale(1); } }
}
