.pql { --pql-bg:transparent; --pql-card:#fff; --pql-accent:#637d08; --pql-text:#303030; --pql-selected:var(--pql-project-selected,#28619a); --pql-available:var(--pql-project-available,#335948); --pql-sold:var(--pql-project-sold,#aa874c); --pql-reserved:var(--pql-project-reserved,#ad643e); --pql-inquiry:var(--pql-project-inquiry,#a77d39); --pql-marker-text:var(--pql-project-marker-text,#fff); --pql-marker-radius:var(--pql-project-marker-radius,8px); --pql-marker-width:var(--pql-project-marker-width,58px); --pql-marker-font-size:var(--pql-project-marker-font-size,14px); --pql-gap:18px; --pql-radius:22px; --pql-tab-radius:14px; --pql-form-fr:1.1fr; --pql-facade-fr:1fr; --pql-gallery-fr:1.9fr; --pql-gallery-max:720px; box-sizing:border-box; display:flex; flex-direction:column; width:100%; max-width:100%; min-width:0; gap:var(--pql-gap); align-items:stretch; padding:0; color:var(--pql-text); background:var(--pql-bg); font-family:inherit; }
.pql *, .pql *::before, .pql *::after { box-sizing:border-box; }
.pql [hidden] { display:none !important; }
.pql button, .pql input, .pql textarea { font:inherit; }
.pql button { cursor:pointer; }
.pql button:focus-visible, .pql input:focus-visible, .pql textarea:focus-visible, .pql a:focus-visible { outline:3px solid var(--pql-selected); outline-offset:2px; }
.pql__left { display:contents; min-width:0; }
.pql__title { font-family:Georgia,serif; font-size:clamp(32px,3.3vw,64px); line-height:1.03; letter-spacing:-.035em; margin:0 0 16px; color:var(--pql-text); overflow-wrap:anywhere; }
.pql__card, .pql__form-card { border-radius:var(--pql-radius); background:var(--pql-card); box-shadow:0 12px 30px rgba(27,23,19,.09); }
.pql__form-card { width:100%; padding:24px; background:var(--pql-form-bg,var(--pql-card)); }
.pql__form-card h3 { color:var(--pql-form-title,var(--pql-accent)); margin:0 0 20px; font-family:Georgia,serif; font-size:clamp(22px,2vw,30px); line-height:1.15; }
.pql__form { display:grid; gap:10px; }
.pql__fields-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--pql-field-gap,10px); min-width:0; }
.pql__field { min-width:0; grid-column:span var(--pql-field-span-d,12); }
.pql__field-label { display:block; margin:0 0 6px; color:var(--pql-form-label,var(--pql-text)); font-size:13px; font-weight:600; line-height:1.3; }
.pql__required { color:var(--pql-accent); }
.pql__field input, .pql__field textarea { width:100%; border:1px solid #dedee0; border-radius:12px; padding:12px; background:var(--pql-input-bg,#fff); color:var(--pql-input-text,var(--pql-text)); line-height:1.35; min-height:44px; }
.pql__field textarea { resize:vertical; min-height:90px; }
.pql__field input::placeholder, .pql__field textarea::placeholder { color:var(--pql-input-placeholder,currentColor); opacity:.6; }
@media(max-width:1024px) { .pql__field { grid-column:span var(--pql-field-span-t,12); } }
@media(max-width:767px) { .pql__field { grid-column:span var(--pql-field-span-m,12); } }
.pql__consent { display:flex; align-items:flex-start; gap:10px; margin:6px 0; line-height:1.4; font-size:13px; }
.pql__consent input { margin:3px 0 0; flex:none; accent-color:var(--pql-accent); }
.pql__consent a { color:var(--pql-accent); text-decoration:underline; }
.pql__submit { border:0; border-radius:12px; padding:14px 12px; color:var(--pql-submit-text,#fff); background:var(--pql-submit-bg,var(--pql-accent)); width:100%; font-weight:700; min-height:44px; }
.pql__submit:hover:not(:disabled) { background:var(--pql-submit-hover-bg,color-mix(in srgb,var(--pql-submit-bg,var(--pql-accent)) 90%,#000)); color:var(--pql-submit-hover-text,var(--pql-submit-text,#fff)); }
.pql__submit:disabled { opacity:.5; cursor:not-allowed; }
.pql__form-result { margin:0; color:var(--pql-accent); }
.pql__form-result:empty { display:none; }
.pql__form-result.is-error { color:#9d3329; }
.pql__trap { position:absolute !important; width:1px !important; height:1px !important; left:-10000px !important; opacity:0; pointer-events:none; }
.pql__sr-only { border:0; clip:rect(0,0,0,0); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; width:1px; white-space:nowrap; }
.pql__building { min-width:0; padding:10px; background:var(--pql-building-bg,var(--pql-card)); }
.pql__legend { display:flex; flex-wrap:wrap; justify-content:center; gap:5px 10px; padding:3px 2px 10px; font-size:12px; }
.pql__legend span { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.pql__dot { width:12px; height:12px; border-radius:50%; display:inline-block; border:2px solid rgba(255,255,255,.7); box-shadow:0 0 0 1px currentColor; background:currentColor; }
.pql__dot--available { color:var(--pql-available); }.pql__dot--sold { color:var(--pql-sold); }.pql__dot--reserved { color:var(--pql-reserved); }.pql__dot--selected { color:var(--pql-selected); }
.pql__facade { position:relative; width:100%; container-type:inline-size; }
.pql__facade > img { display:block; width:100%; height:auto; border-radius:5px; }
.pql__facade-empty { display:grid; place-items:center; min-height:260px; height:100%; padding:22px; border:1px dashed #bdcdb9; border-radius:5px; background:linear-gradient(135deg,#f5f7f3,#e6eee4); text-align:center; color:#506451; font-weight:700; }
.pql__markers { position:absolute; inset:0; }
.pql__marker { position:absolute; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:min(var(--pql-marker-width),var(--pql-marker-fit-x,120px)); max-width:100%; min-width:0; height:min(30px,var(--pql-marker-fit-y,30px)); min-height:0; padding:0 2px; border:2px solid currentColor; border-radius:var(--pql-marker-radius); color:var(--pql-marker-text); background:var(--pql-available); font-size:min(var(--pql-marker-font-size),var(--pql-marker-font-fit,14px)); font-weight:700; line-height:1; white-space:nowrap; text-shadow:0 1px 2px #333; box-shadow:0 2px 5px #0005; transition:opacity .2s, transform .2s; }
.pql__marker--sold { background:var(--pql-sold); }.pql__marker--reserved { background:var(--pql-reserved); }.pql__marker--available { background:var(--pql-available); }
.pql__marker--inquiry { background:var(--pql-inquiry,#a77d39); }
.pql__marker.is-dim { opacity:.6; }.pql__marker:hover { opacity:1; transform:translate(-50%,-50%) scale(1.08); z-index:2; }
.pql__marker.is-selected { opacity:1; background:var(--pql-selected); border-color:#fff; outline:3px solid var(--pql-selected); z-index:3; }
.pql__right { min-width:0; width:min(100%,var(--pql-gallery-max)); justify-self:center; align-self:center; }
.pql__tabs { display:flex; flex-wrap:wrap; justify-content:center; gap:var(--pql-tabs-gap,10px); margin:0 0 12px; min-height:45px; }
.pql__tabs--secondary { margin-bottom:16px; }
.pql__tab { border:0; border-radius:var(--pql-tab-radius); padding:12px 20px; background:var(--pql-tab-bg,var(--pql-card)); color:var(--pql-tab-text,var(--pql-text)); font-weight:700; min-height:44px; min-width:0; max-width:100%; overflow-wrap:anywhere; box-shadow:0 2px 4px #00000009; }
.pql__tab[aria-selected="true"] { background:var(--pql-tab-active-bg,var(--pql-accent)); color:var(--pql-tab-active-text,#fff); }
.pql__tab:hover:not([aria-selected="true"]) { color:var(--pql-accent); }
.pql__gallery { width:100%; min-width:0; min-height:0; aspect-ratio:var(--pql-plan-canvas-ratio,var(--pql-project-plan-canvas-ratio,1)); display:grid; grid-template-rows:minmax(0,1fr) auto; flex:none; padding:24px; background:var(--pql-gallery-bg,var(--pql-card)); }
.pql__image-trigger { grid-area:1 / 1; display:flex; flex-direction:column; width:100%; min-width:0; min-height:0; border:0; background:var(--pql-plan-bg,var(--pql-gallery-bg,transparent)); padding:0; position:relative; text-align:center; isolation:isolate; }
.pql__image-surface { display:block; width:100%; flex:1; min-height:0; position:relative; }
.pql__image { position:absolute; inset:0; margin:auto; display:block; max-width:100%; width:100%; height:100%; max-height:var(--pql-image-height,100%); object-fit:contain; mix-blend-mode:var(--pql-plan-blend,normal); }
.pql__zoom { position:absolute; bottom:4px; left:50%; transform:translateX(-50%); white-space:nowrap; padding:8px 12px; color:#fff; background:#222c; border-radius:8px; opacity:0; transition:opacity .2s; font-size:13px; }
.pql__image-trigger:hover .pql__zoom, .pql__image-trigger:focus-visible .pql__zoom { opacity:1; }
.pql__no-image { grid-area:1 / 1; min-height:0; overflow:auto; padding:15px; color:#737373; text-align:center; }
.pql--project .pql__no-image { display:grid; place-items:center; width:100%; min-height:0; padding:15px; border-radius:15px; border:1px dashed #cdd9c8; background:linear-gradient(135deg,#f6f8f4,#edf3ec); color:#506553; font-weight:700; }
.pql__thumbs { grid-area:2 / 1; display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:14px; max-height:88px; overflow:auto; }
.pql__thumbs:empty { display:none; }
.pql__thumb { border:2px solid transparent; border-radius:8px; background:#f2f2f2; width:68px; height:54px; padding:2px; }
.pql__thumb.is-active { border-color:var(--pql-accent); }
.pql__thumb img { width:100%; height:100%; object-fit:cover; border-radius:4px; }
.pql__details { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; align-self:stretch; }
.pql[data-layout="wide"] .pql__details--extended { grid-template-columns:repeat(4,minmax(0,1fr)); }
.pql[data-layout="compact"] .pql__details--extended,.pql[data-layout="stacked"] .pql__details--extended { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pql__detail { min-width:0; border-radius:12px; background:var(--pql-detail-bg,var(--pql-card)); padding:10px 12px; min-height:70px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; box-shadow:0 7px 20px #00000008; }
.pql__detail strong { text-transform:uppercase; font-size:12px; line-height:1.3; color:var(--pql-detail-label,var(--pql-text)); }
.pql__detail span { font-size:18px; line-height:1.3; overflow-wrap:anywhere; color:var(--pql-detail-value,var(--pql-text)); }
.pql__detail--price span, .pql__detail--status span { color:var(--pql-detail-highlight,var(--pql-accent)); }
.pql__empty { text-align:center; background:var(--pql-card); border-radius:var(--pql-radius); padding:16px; }
.pql__modal { position:fixed; inset:0; z-index:999999; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:55px 20px 20px; background:rgba(10,12,10,.92); color:#fff; }
.pql__modal-image-surface { max-width:min(95vw,1400px); max-height:calc(100vh - 125px); display:grid; place-items:center; background:var(--pql-plan-bg,var(--pql-gallery-bg,#fff)); isolation:isolate; }
.pql__modal img { display:block; max-width:100%; max-height:calc(100vh - 125px); object-fit:contain; mix-blend-mode:var(--pql-plan-blend,normal); }
.pql__modal-close { position:absolute; right:20px; top:12px; font-size:36px !important; line-height:1; background:transparent !important; border:0 !important; color:#fff !important; padding:4px 10px; }
.pql__modal-caption { margin:10px 0 0; text-align:center; }
body.pql-modal-open { overflow:hidden; }
.pql__title { order:0; }
.pql__building { order:1; }
.pql__right { order:2; }
.pql__details,.pql__empty { order:3; }
.pql__form-card { order:4; }
.pql[data-layout="wide"] { display:grid; grid-template-columns:minmax(240px,var(--pql-form-fr)) minmax(190px,var(--pql-facade-fr)) minmax(0,var(--pql-gallery-fr)); align-items:start; }
.pql[data-layout="wide"] .pql__left { display:block; grid-column:1; grid-row:1 / 3; }
.pql[data-layout="wide"] .pql__building { grid-column:2; grid-row:1; }
.pql[data-layout="wide"] .pql__right { grid-column:3; grid-row:1; align-self:stretch; display:flex; flex-direction:column; }
.pql[data-layout="wide"] .pql__details,.pql[data-layout="wide"] .pql__empty { grid-column:2 / 4; grid-row:2; }
.pql[data-layout="compact"] { display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,2fr); align-items:start; }
.pql[data-layout="compact"] .pql__left { display:block; grid-column:1; grid-row:1 / 4; }
.pql[data-layout="compact"] .pql__building { grid-column:2; grid-row:1; }
.pql[data-layout="compact"] .pql__right { grid-column:2; grid-row:2; }
.pql[data-layout="compact"] .pql__details,.pql[data-layout="compact"] .pql__empty { grid-column:2; grid-row:3; }
@container (max-width:420px) { .pql__marker { border-width:1px; padding:0 1px; } }
.pql[data-layout="stacked"] .pql__title { font-size:clamp(32px,6vw,44px); }
.pql[data-layout="stacked"] .pql__tab { padding:10px 15px; }
.pql[data-layout="stacked"] .pql__details { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pql[data-layout="compact"] .pql__title { font-size:clamp(32px,3vw,48px); }
.pql[data-layout="compact"] .pql__form-card { padding:18px; }
@media(prefers-reduced-motion:reduce) { .pql * { transition:none !important; } }

/* Flujo rápido y señales de estado visibles. */
.pql__find { display:flex; align-items:center; justify-content:space-between; gap:9px; padding:4px 2px 10px; font-size:12px; font-weight:700; }
.pql__find label { white-space:nowrap; }
.pql__unit-select { min-width:0; width:65%; padding:7px 28px 7px 9px; border:1px solid #d9dfd0; border-radius:9px; color:var(--pql-text); background:#fff; font-size:13px; }
.pql__form-context { display:inline-flex; align-items:center; gap:8px; max-width:100%; margin:-3px 0 17px; padding:7px 11px; border-radius:100px; background:#f1f5e8; color:var(--pql-accent); font-weight:700; font-size:13px; line-height:1.3; }
.pql__form-context::before { content:""; flex:none; width:8px; height:8px; border-radius:50%; background:var(--pql-available); }
.pql__form-context[data-status=""] { color:#66706a; background:#f2f3f1; }
.pql__form-context[data-status=""]::before { background:#97a19a; }
.pql__form-context[data-status="sold"], .pql__form-context[data-status="reserved"] { background:#f8f2ea; color:#8b6738; }
.pql__form-context[data-status="inquiry"] { background:#fbf3e6; color:#87601e; }
.pql__form-context[data-status="inquiry"]::before { background:var(--pql-inquiry,#a77d39); }
.pql__dot--inquiry { color:var(--pql-inquiry,#a77d39); }
.pql--project .pql__facade { border-radius:6px; }
.pql--crop .pql__facade { aspect-ratio:var(--pql-project-aspect,.85); overflow:hidden; }
.pql--crop .pql__facade > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center; }
.pql__form-context[data-status="sold"]::before { background:var(--pql-sold); }
.pql__form-context[data-status="reserved"]::before { background:var(--pql-reserved); }
.pql__form-hint { margin:-4px 0 0; font-size:12px; color:#815c28; }
.pql__form-hint:empty { display:none; }
.pql__tab { display:inline-flex; justify-content:center; align-items:center; gap:10px; transition:transform .16s, box-shadow .16s; }
.pql__tab:hover { transform:translateY(-2px); box-shadow:0 6px 15px #00000012; }
.pql__tab-count { display:inline-flex; justify-content:center; align-items:center; width:22px; height:22px; flex:none; border-radius:50%; background:#edf1e5; color:var(--pql-accent); font-size:11px; line-height:1; }
.pql__tab[aria-selected="true"] .pql__tab-count { background:#ffffff30; color:var(--pql-tab-active-text,#fff); }
.pql__field input:focus, .pql__field textarea:focus, .pql__unit-select:focus { border-color:var(--pql-accent); }
.pql__editor-tip { margin:9px 2px 2px; padding:8px; border-radius:7px; background:#eff4e8; color:#415d24; font-size:12px; text-align:center; }
.pql--editing .pql__marker { cursor:grab; touch-action:none; }
.pql--editing .pql__marker:active { cursor:grabbing; }
.pql[data-layout="stacked"] .pql__title { order:0; width:100%; }
.pql[data-layout="stacked"] .pql__form-card { order:4; width:100%; }
.pql[data-layout="stacked"] .pql__find { font-size:13px; }
.pql[data-layout="stacked"] .pql__gallery { padding:clamp(12px,4vw,24px); }
.pql[data-layout="stacked"] .pql__form-card { padding:clamp(16px,4vw,24px); }
@media(max-width:400px) { .pql__legend { font-size:11px; } .pql__detail span { font-size:16px; } }
