/* V38: tarjetas, fichas y fotografías reales. El hero inmobiliario conserva V37. */
.listing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.listing-card { min-width:0; background:#fffdf9; border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 10px 32px rgba(21,59,91,.05); }
.listing-card-link { display:flex; height:100%; flex-direction:column; color:var(--ink); text-decoration:none; transition:background .3s ease; }
.listing-card-link:hover { background:#fff; }
.listing-card-link:focus-visible { outline:3px solid var(--gold); outline-offset:-4px; }
.listing-photo { overflow:hidden; background:#e9e5de; }
.listing-photo img { width:100%; height:300px; object-fit:contain; display:block; }
.listing-copy { padding:26px; flex:1; display:flex; flex-direction:column; }
.listing-copy h3 { margin:0; font:500 clamp(25px,2.5vw,33px)/1.15 Georgia,serif; }
.listing-location { margin:14px 0 8px; color:var(--muted); line-height:1.5; }
.listing-area { margin:0 0 24px; font-size:14px; line-height:1.6; }
.listing-bottom { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:center; }
.listing-bottom strong { font-size:20px; }
.listing-bottom > span { font-size:14px; }
.property-detail { padding-top:35px; padding-bottom:80px; }
.property-breadcrumb { font-size:13px; display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); }
.property-breadcrumb a { text-decoration:underline; text-underline-offset:3px; }
.property-detail-heading { padding:40px 0 26px; max-width:1000px; }
.property-detail-heading h1 { margin:0; font:500 clamp(34px,4.5vw,62px)/1.08 Georgia,serif; letter-spacing:-.025em; }
.property-detail-heading > p:last-child { color:var(--muted); line-height:1.6; }
.property-detail-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); align-items:start; gap:36px; }
.property-full-photo { display:block; border-radius:18px; overflow:hidden; background:#e9e5de; }
.property-full-photo img { width:100%; height:min(62vh,620px); min-height:280px; object-fit:contain; display:block; }
.photo-hint { font-size:12px; color:var(--muted); margin-top:10px; }
.property-summary { padding:30px; border:1px solid var(--line); border-radius:18px; background:#fffdf9; }
.property-price { font:500 clamp(28px,3vw,38px)/1.2 Georgia,serif; margin:0 0 24px; }
.property-summary dl { margin:0 0 26px; }
.property-summary dt { font-size:12px; text-transform:uppercase; letter-spacing:.1em; margin-top:20px; color:var(--muted); }
.property-summary dd { margin:6px 0 0; line-height:1.6; }
.property-summary .button { width:100%; white-space:normal; text-align:center; }
.property-description { max-width:850px; margin:40px 0; }
.property-text-section { margin:0 0 30px; }
.property-text-section h2 { font:500 28px/1.2 Georgia,serif; margin:0 0 16px; }
.property-text-section p,.property-text-section li { color:#50616e; line-height:1.8; }
.property-text-section ul { padding-left:22px; }
.property-text-section li+li { margin-top:6px; }
.draft-note { padding:18px 22px; border-left:3px solid var(--gold); background:#f1eadc; color:#514b41; font-size:14px; line-height:1.7; margin:24px 0; }
.property-slide a { display:block; }
.property-slide img { object-fit:contain; background:#e9e5de; transform:none!important; }
.property-slide figcaption { max-width:calc(100% - 40px); pointer-events:none; }
.property-carousel .photo-pause { position:absolute; top:12px; right:12px; }
.photo-pause { border:1px solid rgba(255,255,255,.7); background:#163b5be8; color:white; border-radius:6px; padding:8px 12px; min-height:38px; cursor:pointer; font:inherit; font-size:12px; }
.property-dot { position:relative; min-width:24px; min-height:24px; background:transparent; border-radius:0; }
.property-dot::after { content:''; position:absolute; inset:8px; border-radius:8px; background:rgba(255,255,255,.45); }
.property-dot.is-active { background:transparent; }
.property-dot.is-active::after { inset:8px 2px; background:var(--gold); }
.office-track { position:relative; aspect-ratio:4/3; }
.office-carousel .office-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:var(--paper-2); opacity:0; transition:opacity .9s ease; }
.office-carousel .office-slide.is-active { opacity:1; }
.office-controls { position:absolute; z-index:2; bottom:14px; left:14px; right:14px; display:flex; align-items:center; gap:8px; }
.office-controls .photo-pause { margin-left:auto; }
.office-dot { width:32px; height:32px; padding:0; background:#163b5bd9; border:1px solid #fff; border-radius:50%; cursor:pointer; }
.office-dot.is-active { background:var(--gold); }
[data-photo-carousel] button:focus-visible,.property-detail a:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media(max-width:980px) { .property-detail-grid { grid-template-columns:1fr; gap:18px; } }
@media(max-width:620px) { .listing-grid { grid-template-columns:1fr; gap:24px; } .listing-photo img { height:280px; } .listing-copy,.property-summary { padding:22px; } .property-detail-heading { padding-top:30px; } .property-full-photo img { height:420px; max-height:65vh; } .property-slide figcaption { left:12px; bottom:12px; max-width:calc(100% - 24px); font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .office-carousel .office-slide,.property-track { transition:none; } }


/* ===== V39: carrusel principal normalizado ===== */
.property-viewport {
  background: transparent;
}
.property-slide a {
  display: block;
  width: 100%;
}
.property-slide img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: transparent;
  transform: none !important;
}

/* V40: inmueble-4-home.webp usa un recorte 4:3 más bajo para incluir la planta baja/local. */
