/*
Theme Name: Astra Inmobiliaria Minimal
Theme URI: https://wpastra.com/
Description: Child theme minimalista para catálogo inmobiliario conectado a Tokko.
Author: Custom
Template: astra
Version: 1.5.0
Text Domain: astra-inmobiliaria-minimal
*/

:root {
  --im-text: #1a1c1b;
  --im-muted: #6b726e;
  --im-line: #eaece9;
  --im-soft: #f7f8f6;
  --im-accent: #1e332b;
}

body { color: var(--im-text); }
.ast-container { max-width: 1240px; margin: 0 auto; padding: 0 20px; }

/* Archive */
.im-archive-head { margin: 40px 0 32px; }
.im-eyebrow { color: var(--im-muted); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 6px; }
.im-archive-title { font-size: clamp(28px, 4vw, 40px); font-weight: 500; letter-spacing: -.03em; margin: 0 0 8px; }
.im-archive-intro { color: var(--im-muted); font-size: 15px; margin: 0; }
.im-property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; margin: 32px 0 64px; }
.im-card { min-width: 0; }
.im-card-image { display: block; overflow: hidden; background: var(--im-soft); aspect-ratio: 4/3; border-radius: 4px; }
.im-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.im-card-image:hover img { transform: scale(1.03); }
.im-card-no-image { height: 100%; min-height: 180px; display: grid; place-items:center; color: var(--im-muted); font-size: 13px; }
.im-card-content { padding: 16px 0 0; }
.im-card-kicker { color: var(--im-muted); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.im-card-title { font-size: 18px; line-height: 1.35; font-weight: 500; margin: 0 0 6px; }
.im-card-title a { color: var(--im-text); text-decoration: none; }
.im-card-address { color: var(--im-muted); font-size: 13px; margin: 0 0 10px; }
.im-card-price { font-size: 17px; font-weight: 600; margin: 0; }
.im-card-specs { display: flex; gap: 14px; flex-wrap: wrap; color: var(--im-muted); font-size: 12px; margin-top: 10px; }
.im-pagination { margin: 0 0 60px; }

/* Single property */
.im-single { max-width: 1100px; margin: 40px auto 80px; }
.im-single-top { margin-bottom: 28px; }
.im-single-title { font-size: clamp(28px, 4vw, 42px); font-weight: 500; letter-spacing: -.035em; margin: 6px 0 8px; line-height: 1.2; }
.im-single-address { color: var(--im-muted); font-size: 16px; }
.im-single-price { font-size: 24px; font-weight: 600; margin-top: 12px; }

/* Original Gallery Layout */
.im-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 210px; gap: 8px; margin: 30px 0 40px; border-radius: 6px; overflow: hidden; }
.im-gallery-item { position: relative; display: block; width: 100%; height: 100%; padding: 0; margin: 0; border: 0; background: var(--im-soft); cursor: pointer; overflow: hidden; }
.im-gallery-item:first-child { grid-row: span 2; }
.im-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.im-gallery-item:hover img { transform: scale(1.03); }
.im-gallery-item.is-more::after { content: ""; position: absolute; inset: 0; background: rgba(20, 24, 22, 0.48); }
.im-gallery-more { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; color: #fff; font-size: 16px; font-weight: 600; letter-spacing: .02em; }

/* Layout & Sections */
.im-single-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 60px; align-items: start; }
.im-details { display: flex; flex-wrap: wrap; gap: 12px 28px; padding: 20px 0; border-top: 1px solid var(--im-line); border-bottom: 1px solid var(--im-line); color: var(--im-text); font-size: 14px; font-weight: 500; }
.im-section { margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--im-line); }
.im-section:first-of-type { border-top: 0; padding-top: 0; }
.im-section-title { font-size: 18px; font-weight: 600; letter-spacing: -.01em; margin: 0 0 16px; color: var(--im-text); }
.im-description { line-height: 1.85; color: var(--im-text); font-size: 15px; }
.im-description p { margin: 0 0 16px; }
.im-description p:last-child { margin-bottom: 0; }

/* Ficha técnica minimalista y ordenada */
.im-specs-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; margin: 0; }
.im-spec-item { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--im-line); font-size: 14px; min-width: 0; }
.im-spec-item.is-wide { grid-column: 1 / -1; }
.im-spec-label { color: var(--im-muted); margin: 0; font-weight: 400; flex-shrink: 0; }
.im-spec-value { color: var(--im-text); margin: 0; font-weight: 500; text-align: right; word-break: break-word; }

/* Amenities y servicios */
.im-features-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; }
.im-features-list li { position: relative; padding-left: 18px; font-size: 14px; color: var(--im-text); line-height: 1.5; }
.im-features-list li::before { content: "·"; position: absolute; left: 4px; top: -2px; color: var(--im-accent); font-weight: 900; font-size: 18px; }

/* Video responsive */
.im-video-container { position: relative; width: 100%; overflow: hidden; background: var(--im-soft); aspect-ratio: 16/9; border-radius: 4px; }
.im-video-container iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Sidebar contacto */
.im-contact { background: var(--im-soft); padding: 28px; border-radius: 6px; position: sticky; top: 32px; }
.im-contact h2 { font-size: 18px; font-weight: 600; margin: 0 0 8px; }
.im-contact p { color: var(--im-muted); font-size: 13px; margin: 0 0 20px; line-height: 1.5; }
.im-whatsapp { display: inline-flex; justify-content: center; width: 100%; padding: 14px 18px; background: var(--im-accent); color: #fff !important; text-decoration: none !important; font-size: 14px; font-weight: 600; border-radius: 4px; transition: opacity .2s; }
.im-whatsapp:hover { opacity: .9; }
.im-empty { padding: 60px 0; color: var(--im-muted); text-align: center; }

/* Lightbox / Visor superpuesto */
html.im-lightbox-open,
html.im-lightbox-open body { overflow: hidden; }
.im-lightbox[hidden] { display: none !important; }
.im-lightbox { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; }
.im-lightbox-backdrop { position: absolute; inset: 0; background: rgba(12, 14, 13, 0.94); }
.im-lightbox-topbar { position: absolute; top: 0; left: 0; right: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; padding: 20px 28px; color: #fff; pointer-events: none; }
.im-lightbox-counter { font-size: 14px; font-weight: 500; letter-spacing: .04em; background: rgba(255,255,255,.1); padding: 6px 14px; border-radius: 4px; pointer-events: auto; }
.im-lightbox-close { pointer-events: auto; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 28px; line-height: 1; display: grid; place-items: center; cursor: pointer; transition: background .2s; padding: 0; }
.im-lightbox-close:hover { background: rgba(255,255,255,.28); }
.im-lightbox-stage { position: relative; z-index: 2; max-width: 90vw; max-height: 84vh; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.im-lightbox-stage img { max-width: 90vw; max-height: 84vh; width: auto; height: auto; object-fit: contain; display: block; box-shadow: 0 20px 60px rgba(0,0,0,.6); pointer-events: auto; user-select: none; }
.im-lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 50px; height: 50px; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; font-size: 32px; line-height: 1; display: grid; place-items: center; cursor: pointer; transition: background .2s; padding: 0; }
.im-lightbox-nav:hover { background: rgba(255,255,255,.28); }
.im-lightbox-prev { left: 24px; }
.im-lightbox-next { right: 24px; }

@media(max-width: 900px) {
 .im-property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 18px; }
 .im-single-layout { grid-template-columns: 1fr; gap: 32px; }
 .im-contact { max-width: 100%; position: static; }
}
@media(max-width: 600px) {
 .im-property-grid { grid-template-columns: 1fr; gap: 24px; }
 .im-archive-head { margin-top: 24px; }
 .im-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 140px; }
 .im-gallery-item:first-child { grid-column: span 2; grid-row: span 1; }
 .im-specs-grid, .im-features-list { grid-template-columns: 1fr; }
 .im-lightbox-nav { width: 40px; height: 40px; font-size: 26px; }
 .im-lightbox-prev { left: 12px; }
 .im-lightbox-next { right: 12px; }
}
