@layer reset, base, components;
@layer reset{*{box-sizing:border-box}body,h1,h2,p,figure{margin:0}button,input,select{font:inherit}img{display:block;max-width:100%}}
@layer base{:root{--ink:#22231f;--muted:#6d7068;--paper:#f5f3ed;--card:#fff;--line:#ddd9cf;--accent:#245a46;--radius:18px}body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);min-height:100vh}.site-head,main{width:min(1440px,calc(100% - 32px));margin:auto}.site-head{display:flex;justify-content:space-between;align-items:center;padding:22px 0}.site-head div{display:grid}.site-head span{color:var(--muted);font-size:.9rem}button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:.65rem 1rem;cursor:pointer}button:hover{border-color:var(--accent)} }
@layer components{.filters{display:grid;grid-template-columns:2fr repeat(4,minmax(130px,1fr)) auto;gap:10px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);position:sticky;top:8px;z-index:4;box-shadow:0 8px 30px #332b1d10}.filters label{display:grid;gap:5px;color:var(--muted);font-size:.78rem}.filters input,.filters select{width:100%;border:1px solid var(--line);border-radius:11px;padding:.72rem;background:white;color:var(--ink)}.result-head{display:flex;justify-content:space-between;align-items:end;padding:26px 2px 14px}.result-head output{color:var(--muted)}.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;padding-bottom:50px}.property-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:.18s transform,.18s box-shadow}.property-card:hover{transform:translateY(-3px);box-shadow:0 16px 35px #332b1d18}.property-card figure{aspect-ratio:4/3;background:#ddd;overflow:hidden;position:relative}.property-card img{width:100%;height:100%;object-fit:cover}.badge{position:absolute;top:12px;left:12px;background:#ffffffdd;backdrop-filter:blur(6px);padding:.35rem .62rem;border-radius:999px;font-size:.75rem}.card-body{padding:15px;display:grid;gap:9px}.price{font-size:1.35rem;font-weight:750;color:var(--accent)}.title{font-size:1rem;line-height:1.25}.location{color:var(--muted);font-size:.86rem}.facts{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem}.facts span{background:var(--paper);border-radius:8px;padding:.35rem .5rem}.compact .property-grid{grid-template-columns:1fr}.compact .property-card{display:grid;grid-template-columns:220px 1fr}.compact .property-card figure{height:100%;aspect-ratio:auto}dialog{width:min(920px,calc(100% - 28px));border:0;border-radius:22px;padding:0;box-shadow:0 30px 90px #0006}dialog::backdrop{background:#15181299;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:14px;top:14px;z-index:3;font-size:1.3rem}.detail-grid{display:grid;grid-template-columns:1.15fr 1fr}.detail-grid img{width:100%;height:100%;min-height:430px;object-fit:cover}.detail-copy{padding:36px;display:grid;align-content:start;gap:16px}.detail-copy .price{font-size:1.8rem}.detail-copy a{color:var(--accent)}@media(max-width:900px){.filters{grid-template-columns:1fr 1fr;position:static}.filters label:first-child{grid-column:1/-1}.detail-grid{grid-template-columns:1fr}.detail-grid img{min-height:260px;max-height:420px}.compact .property-card{grid-template-columns:140px 1fr}}@media(max-width:560px){.filters{grid-template-columns:1fr}.filters label:first-child{grid-column:auto}.property-grid{grid-template-columns:1fr}.site-head{align-items:flex-start}.site-head button{font-size:.78rem}.compact .property-card{grid-template-columns:1fr}.compact .property-card figure{aspect-ratio:16/9}}}

.branded-media{position:relative;margin:0;overflow:hidden;background:#d8ddd8}.branded-media>img{width:100%;height:100%;object-fit:cover}.watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(55%,420px);aspect-ratio:1/1;background:url('/data/assets/hogar-regio-oficial.png') center/contain no-repeat;opacity:.33;filter:drop-shadow(0 2px 5px #0005);pointer-events:none;z-index:2}.card-media{aspect-ratio:4/3}.property-card{position:relative}.property-card>.badge{z-index:2}.property-card>figure{aspect-ratio:4/3}
.property-detail{padding:clamp(18px,3vw,42px);display:grid;gap:26px}.detail-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:24px;align-items:end;padding-right:48px}.detail-identity{display:grid;gap:7px}.detail-identity h1{font-size:clamp(1.6rem,4vw,2.75rem);line-height:1.04;max-width:20ch}.detail-location{font-size:clamp(1rem,2vw,1.2rem);font-weight:750;color:var(--accent)}.detail-id{font-size:.8rem;color:var(--muted)}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.commercial-card{background:var(--accent);color:#fff;border-radius:18px;padding:20px;display:grid;gap:4px;box-shadow:0 14px 34px #244a3a24}.commercial-card span,.commercial-card small{opacity:.78}.commercial-card strong{font-size:clamp(1.65rem,3vw,2.2rem);line-height:1.05}
.detail-gallery{display:grid;gap:10px}.gallery-stage{position:relative;min-height:clamp(320px,58vw,650px);border-radius:18px;overflow:hidden;background:#d8ddd8}.gallery-stage .detail-media{position:absolute;inset:0}.gallery-stage img{transition:opacity .2s ease,transform .25s ease}.gallery-stage img.is-swapping{opacity:.25;transform:scale(.985)}.gallery-counter{position:absolute;left:14px;bottom:14px;z-index:2;padding:.45rem .7rem;border-radius:999px;background:#111b;color:#fff;font-size:.8rem;backdrop-filter:blur(6px)}.gallery-thumbs{display:flex;gap:9px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}.gallery-thumb{flex:0 0 106px;height:76px;padding:0;border:2px solid transparent;border-radius:11px;overflow:hidden;background:#ddd}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.gallery-thumb:hover{border-color:#9caf9e}.gallery-thumb.is-active{border-color:var(--accent);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent)}
.decision-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:10px}.decision-strip div{padding:14px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);text-align:center}.decision-strip strong{font-size:.92rem}.detail-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,340px);gap:28px;align-items:start}.detail-main{display:grid;gap:24px}.detail-sidebar{display:grid;gap:16px;position:sticky;top:18px}.detail-section{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:22px}.detail-section--lead{border-top:0;padding-top:0}.detail-section p{line-height:1.7;max-width:76ch}.feature-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:0}.feature-list div{padding:12px;border-radius:12px;background:var(--paper)}.feature-list dt{font-size:.76rem;color:var(--muted)}.feature-list dd{margin:.25rem 0 0;font-weight:600}.location-card{padding:20px;border:1px solid var(--line);background:var(--card);border-radius:18px;display:grid;gap:8px}.location-card h2{font-size:1.25rem}.location-card p{color:var(--muted);line-height:1.5}.detail-actions{display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:18px}.detail-actions--stacked{display:grid;border-top:0;padding-top:0}.detail-actions a{display:block;color:var(--accent);font-weight:700;text-align:center;padding:.7rem 1rem;border:1px solid var(--line);border-radius:999px;background:var(--card);text-decoration:none}
@media(max-width:850px){.detail-hero,.detail-content{grid-template-columns:1fr}.commercial-card{max-width:360px}.detail-sidebar{position:static;grid-row:auto}.gallery-stage{min-height:clamp(280px,68vw,520px)}.watermark{opacity:.5}}
@media(max-width:560px){.detail-hero{padding-right:0}.commercial-card{max-width:none}.gallery-thumb{flex-basis:88px;height:64px}.decision-strip{grid-template-columns:1fr 1fr}.detail-actions>*{width:100%}}

/* Identity projection: the provider owns credentials; this UI only projects session state. */
.auth-slot{display:flex;align-items:center;gap:.65rem;margin-left:auto}.auth-button,.auth-link{display:inline-flex;align-items:center;min-height:2.35rem;padding:.48rem .8rem;border-radius:999px;text-decoration:none;font-weight:700}.auth-button{background:var(--accent,#166534);color:white}.auth-button--user{background:rgba(255,255,255,.14);color:inherit}.auth-link{color:inherit}.account-page{max-width:760px;margin:3rem auto;padding:1.25rem}.account-card{background:var(--surface,#fff);border:1px solid rgba(0,0,0,.1);border-radius:1rem;padding:1.3rem}.account-card dl{display:grid;grid-template-columns:max-content 1fr;gap:.7rem 1rem}.account-card dt{font-weight:800}.publisher-shell{max-width:920px;margin:3rem auto;padding:1.25rem}.publisher-welcome{border:1px solid rgba(0,0,0,.1);border-radius:1rem;padding:1.4rem;background:var(--surface,#fff)}

.view-modes{display:flex;gap:.4rem;flex-wrap:wrap}.view-modes button{padding:.5rem .72rem;border:1px solid var(--line);border-radius:999px;background:var(--card);color:inherit}.view-modes button.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}
.property-grid[data-view-mode="carousel"]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:2px 2px 24px;gap:18px}.property-grid[data-view-mode="carousel"] .property-card{flex:0 0 min(340px,86vw);scroll-snap-align:start}.request-info{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:800}.request-info:disabled{opacity:.7}
@media(max-width:620px){.site-head{gap:12px}.view-modes{width:100%}}
.compact-municipality{min-width:0;margin:0;break-inside:avoid;border-top:1px solid var(--line);padding-top:.25rem}
.compact-municipality>h2{display:flex;align-items:baseline;gap:.35rem;margin:0 0 .16rem;padding:0;font:800 .74rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.035em;color:#17251e}
.compact-municipality>h2 small{font-size:.8em;font-weight:650;opacity:.55}
.compact-tone-0{--compact-accent:#2f4f4f}.compact-tone-1{--compact-accent:#5b3a29}.compact-tone-2{--compact-accent:#3d405b}.compact-tone-3{--compact-accent:#4f5d2f}.compact-tone-4{--compact-accent:#6b3e4b}.compact-tone-5{--compact-accent:#3f5f73}
@media(max-width:1050px){}
@media(max-width:760px){.compact-municipality>h2{font-size:.69rem}}
@media(max-width:390px){}
.contact-dialog{width:min(560px,calc(100% - 28px));border:0;border-radius:20px;padding:0}.contact-form{display:grid;gap:1rem;padding:2rem}.contact-form label{display:grid;gap:.45rem;font-weight:700}.contact-form textarea{min-height:150px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:.8rem;font:inherit}.contact-actions{display:flex;justify-content:flex-end;gap:.7rem}.contact-form output{min-height:1.2rem;color:var(--accent);font-weight:700}

.projection-switcher{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0 1rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 8px 24px #0000000a}
.projection-switcher__label{font-weight:800;color:var(--ink);white-space:nowrap}
.projection-switcher .view-modes{margin-left:auto}
@media(max-width:700px){.projection-switcher{align-items:flex-start;flex-direction:column}.projection-switcher .view-modes{margin-left:0;width:100%}}

.build-mark{font-size:.65rem;font-weight:600;opacity:.5;margin-left:.35rem}

.detail-priority{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:16px;align-items:stretch}
.commercial-card--primary{order:0;min-height:150px;align-content:center}
.location-card--primary{order:1;min-height:150px;align-content:center}
.location-card--primary h1{font-size:clamp(1.35rem,3vw,2rem);line-height:1.12;margin:0}
.decision-strip--primary{margin-top:-2px}
.detail-title{display:grid;gap:.35rem;padding:.2rem 0 .1rem}
.detail-title h2{font-size:clamp(1.25rem,2.5vw,1.8rem);line-height:1.18;margin:0}
@media(max-width:720px){.detail-priority{grid-template-columns:1fr}.commercial-card--primary,.location-card--primary{min-height:auto}.commercial-card--primary{order:0}.location-card--primary{order:1}}


.market-hero{margin:1rem 0;padding:clamp(1rem,3vw,2rem);border-block:1px solid var(--line);background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent)}
.market-hero h1{margin:.2rem 0;font-size:clamp(1.55rem,4vw,3rem);line-height:1.05}.market-hero p{margin:.4rem 0 0;color:var(--muted)}
.classified-newspaper{width:100%;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}
.classified-category{display:flex;justify-content:space-between;gap:1rem;margin:0;padding:.36rem .1rem;border-top:2px solid currentColor;border-bottom:1px solid var(--line);font-size:.76rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.classified-municipality{margin:.38rem 0 .12rem;padding:0;font:800 .72rem/1.08 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.035em;text-transform:uppercase;color:var(--ink);break-after:avoid}.classified-municipality small{font-size:.65rem;color:var(--muted)}
.compact-ad{display:flex;flex-wrap:wrap;align-items:baseline;gap:.09rem .22rem;margin:0;padding:.075rem 0;font:500 .68rem/1.12 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer;break-inside:avoid;word-break:normal;overflow-wrap:normal;hyphens:none}.compact-ad:hover,.compact-ad:focus-visible{background:color-mix(in srgb,var(--accent) 7%,transparent);outline:none}.compact-ad .media-mark{display:inline-flex;width:.9em;height:.9em;align-items:center;justify-content:center;flex:0 0 auto}.compact-ad .compact-colony{font-weight:650;white-space:normal}.compact-token{display:inline-flex;align-items:center;gap:.02rem;white-space:nowrap}.compact-token b{font-weight:700}.compact-icon{width:.82em;height:.82em;stroke:currentColor;fill:none;stroke-width:1.7}.compact-price{font-weight:800}.compact-tier-premium{color:#176b45;font-weight:700}.compact-tier-standard{color:#174f7a}.compact-tier-free{color:var(--ink)}
@media(max-width:1180px){}
@media(max-width:640px){.compact-ad{font-size:.64rem}.classified-category{font-size:.68rem}}
.classified-newspaper{width:100%;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}
.classified-category{display:flex;justify-content:space-between;gap:1rem;margin:0 0 .45rem;padding:.28rem 0;border:0;border-bottom:1px solid var(--line);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.classified-municipality{margin:.42rem 0 .14rem;padding:0;font:800 .72rem/1.1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);break-after:avoid}
.classified-municipality:first-child{margin-top:0}
.classified-municipality span{font-weight:600;text-transform:none;letter-spacing:0}
.classified-municipality small{font-size:.65rem;font-weight:500;color:var(--muted)}
.compact-ad{display:block;margin:0;padding:.06rem 0 .06rem .45em;font:400 .68rem/1.18 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);cursor:pointer;break-inside:avoid;word-break:normal;overflow-wrap:normal;hyphens:none;text-align:left}
.compact-ad:hover,.compact-ad:focus-visible{background:color-mix(in srgb,var(--accent) 6%,transparent);outline:none}
.compact-ad .compact-colony{font-weight:400;white-space:normal}
.compact-token{display:inline-flex;align-items:baseline;gap:.02rem;white-space:nowrap;font-weight:400}
.compact-icon{display:inline-block;width:.82em;height:.82em;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.08em}
.compact-price{font-weight:400;color:inherit}
.compact-screen{margin-left:.02rem;vertical-align:baseline}
.compact-screen .compact-icon{width:.9em;height:.9em}
.compact-tier-premium,.compact-tier-standard,.compact-tier-free{color:var(--ink);font-weight:400}
@media(max-width:1180px){}
@media(max-width:640px){.compact-ad{padding-left:.35em;font-size:.63rem}.classified-municipality{font-size:.68rem}.classified-category{font-size:.67rem}}
