/* Terramaq7 · base compartida (lightbox, selector de propuestas, reveal, utilidades).
   Cada propuesta define sus tokens: --lb-*, --font-head, --font-body, etc. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,video{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;padding:0}
a{color:inherit}
.ic{width:1.15em;height:1.15em;flex:none;fill:currentColor}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--focus,#FCCB02);outline-offset:3px}
html.is-loading,html.lb-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Preloader: salida de emergencia si el JS no carga */
#preloader{animation:tmPreFail 0s 9s forwards}
@keyframes tmPreFail{to{visibility:hidden;opacity:0;pointer-events:none}}

/* Reveal */
html.js [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(min(var(--i,0),8) * 70ms)}
html.js [data-reveal].in{opacity:1;transform:none}

/* ---------- Lightbox ---------- */
.lb{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:clamp(10px,3vw,40px)}
.lb[hidden]{display:none}
.lb__backdrop{position:absolute;inset:0;background:var(--lb-backdrop,rgba(6,6,7,.88));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .3s}
.lb.is-open .lb__backdrop{opacity:1}
.lb__panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);width:min(1220px,100%);max-height:calc(100dvh - 40px);background:var(--lb-panel,#111);color:var(--lb-ink,#f2f2f2);border-radius:var(--lb-radius,6px);overflow:hidden;box-shadow:0 40px 120px rgba(0,0,0,.5);opacity:0;transform:translateY(24px) scale(.98);transition:opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1)}
.lb.is-open .lb__panel{opacity:1;transform:none}
.lb__media{position:relative;background:var(--lb-media,#000);display:grid;place-items:center;min-height:min(62vh,640px);min-width:0}
.lb__img{width:100%;height:100%;max-height:calc(100dvh - 40px);object-fit:contain;opacity:0;transform:scale(1.015);transition:opacity .4s,transform .6s cubic-bezier(.2,.8,.2,1)}
.lb__img.is-in{opacity:1;transform:none}
.lb[data-mode="renta"] .lb__media{background:var(--lb-media-renta,var(--lb-media,#000))}
.lb[data-mode="renta"] .lb__img{object-fit:contain;padding:clamp(0px,2vw,24px) clamp(0px,2vw,24px) 86px}
.lb__thumbs{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:8px}
.lb__thumb{width:64px;height:48px;border-radius:calc(var(--lb-radius,6px) * .6);overflow:hidden;border:2px solid transparent;opacity:.6;transition:opacity .2s,border-color .2s}
.lb__thumb img{width:100%;height:100%;object-fit:cover}
.lb__thumb.is-on{border-color:var(--lb-accent,#FCCB02);opacity:1}
.lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;transition:background .2s}
.lb__nav:hover{background:var(--lb-accent,#FCCB02);color:var(--lb-accent-ink,#111)}
.lb__nav .ic{width:22px;height:22px}
.lb__nav--prev{left:14px}.lb__nav--next{right:14px}
.lb__side{display:flex;flex-direction:column;gap:14px;padding:clamp(22px,3vw,36px);overflow:auto;font-family:var(--font-body,system-ui)}
.lb__kicker{font:600 .72rem/1.2 var(--font-mono,var(--font-body,system-ui));letter-spacing:.16em;text-transform:uppercase;color:var(--lb-accent,#FCCB02)}
.lb__title{margin:0;font-family:var(--font-head,inherit);font-size:clamp(1.35rem,2.2vw,1.8rem);line-height:1.12;font-weight:var(--lb-title-weight,700);padding-right:40px}
.lb__body{color:var(--lb-muted,#a9a9ad);font-size:.95rem;line-height:1.6}
.lb__body p{margin:0}
.lb__actions{display:grid;gap:10px;margin-top:auto;padding-top:8px}
.lb__btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 18px;border-radius:var(--btn-radius,4px);font-weight:700;font-size:.98rem;text-decoration:none;transition:transform .2s,filter .2s,box-shadow .2s}
.lb__btn:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 12px 28px rgba(0,0,0,.28)}
.lb__btn .ic{width:20px;height:20px}
.lb__btn--fb{background:#1877F2;color:#fff}
.lb__btn--ig{background:linear-gradient(45deg,#F58529,#DD2A7B 55%,#8134AF);color:#fff}
.lb__btn--wa{background:#25D366;color:#06351b}
.lb__opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 12px}
.lb__opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;text-align:left;border:1.5px solid var(--lb-line,rgba(255,255,255,.14));border-radius:calc(var(--lb-radius,6px) * .7);transition:border-color .2s,background .2s}
.lb__opt strong{font-family:var(--font-head,inherit);font-size:1.25rem;color:var(--lb-ink,#fff);font-variant-numeric:tabular-nums}
.lb__opt small{font-size:.7rem;opacity:.75}
.lb__optl{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.lb__opt.is-on{border-color:var(--lb-accent,#FCCB02);background:var(--lb-opt-on,rgba(252,203,2,.08))}
.lb__opt.is-on .lb__optl{color:var(--lb-accent-text,var(--lb-accent,#FCCB02))}
.lb__notes{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:.84rem}
.lb__notes li{position:relative;padding-left:16px}
.lb__notes li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:1px;background:var(--lb-accent,#FCCB02)}
.lb__close{position:absolute;top:12px;right:12px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--lb-close-bg,rgba(255,255,255,.08));color:var(--lb-ink,#fff);z-index:2;transition:background .2s,transform .3s}
.lb__close:hover{background:var(--lb-accent,#FCCB02);color:var(--lb-accent-ink,#111);transform:rotate(90deg)}
.lb__close .ic{width:20px;height:20px}
@media (max-width:860px){
  .lb{padding:0;place-items:end center}
  .lb__panel{grid-template-columns:1fr;max-height:100dvh;height:100dvh;border-radius:0;grid-template-rows:minmax(0,52%) minmax(0,1fr)}
  .lb__media{min-height:0}
  .lb__img{max-height:100%}
  .lb__close{background:rgba(0,0,0,.5);color:#fff}
  .lb__nav{width:40px;height:40px}
}

/* ---------- Selector flotante de propuestas ---------- */
.tm-switch{position:fixed;left:16px;bottom:16px;z-index:900;display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px;background:rgba(12,12,13,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.12);font:600 12px/1 system-ui,-apple-system,"Segoe UI",sans-serif;color:#f1f1f1;opacity:0;transform:translateY(12px);transition:opacity .6s .4s,transform .6s .4s}
html.is-loaded .tm-switch{opacity:1;transform:none}
.tm-switch a{text-decoration:none;display:grid;place-items:center;height:30px;border-radius:999px;transition:background .2s,color .2s}
.tm-switch__home{padding:0 12px;letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;color:#bdbdc2}
.tm-switch__home:hover{color:#fff}
.tm-switch__n{width:30px}
.tm-switch__n:hover{background:rgba(255,255,255,.12)}
.tm-switch__n.is-on{background:#FCCB02;color:#111}
html.lb-open .tm-switch{opacity:0;pointer-events:none}
@media (min-width:1100px){
  .tm-switch{left:14px;bottom:auto;top:50%;flex-direction:column;padding:6px 5px;transform:translate(-8px,-50%)}
  html.is-loaded .tm-switch{transform:translateY(-50%)}
  .tm-switch__home{writing-mode:vertical-rl;transform:rotate(180deg);padding:10px 0;height:auto}
}

/* ---------- Botón flotante WhatsApp ---------- */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:900;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25D366;color:#fff;box-shadow:0 12px 30px rgba(37,211,102,.35),0 4px 10px rgba(0,0,0,.2);transition:transform .25s,opacity .3s;opacity:0}
html.is-loaded .wa-float{opacity:1;animation:waIn .6s .7s backwards cubic-bezier(.3,1.6,.5,1)}
@keyframes waIn{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}
.wa-float:hover{transform:scale(1.08)}
.wa-float .ic{width:30px;height:30px}
.wa-float::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:waPulse 2.4s infinite}
@keyframes waPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
html.lb-open .wa-float{opacity:0;pointer-events:none}

/* Mapa */
.map-embed{position:relative;overflow:hidden}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.is-shot .tm-switch,.is-shot .wa-float{display:none!important}

/* Evita desbordes en grids con contenido ancho */
.mq,.ph,.mq__body,.mq__price{min-width:0}
