
:root { --ink:#132823; --green:#0b5b46; --lime:#d9f15a; --paper:#f5f4ee; --line:#d9ded8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
.site-header { height:78px; padding:0 max(24px,5vw); display:flex; align-items:center; justify-content:space-between; background:#fff; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; font-weight:800; font-size:20px; letter-spacing:-.4px; }
.brand-mark { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:var(--green); color:var(--lime); font-size:14px; }
.header-count { display:flex; align-items:baseline; gap:8px; color:#607069; font-size:13px; }.header-count strong{font-size:22px;color:var(--green)}
.hero { min-height:360px; padding:72px max(24px,8vw) 130px; background:var(--green); color:white; position:relative; overflow:hidden; }
.hero:after { content:""; position:absolute; width:430px; height:430px; right:-80px; top:-150px; border:85px solid rgba(217,241,90,.12); border-radius:50%; }
.eyebrow { margin:0 0 12px; text-transform:uppercase; letter-spacing:.15em; font-size:12px; font-weight:800; color:#6d7e77; }.hero .eyebrow{color:var(--lime)}
h1 { margin:0; max-width:850px; font-family:Georgia, 'Times New Roman', serif; font-size:clamp(45px,7vw,86px); line-height:.95; letter-spacing:-.045em; font-weight:500; }
h1 em { color:var(--lime); font-weight:400; }
.intro { max-width:630px; margin:28px 0 0; color:#dce8e4; font-size:17px; line-height:1.6; }
.search-panel { width:min(1180px,calc(100% - 40px)); margin:-62px auto 0; position:relative; z-index:2; padding:24px; border-radius:18px; background:white; box-shadow:0 18px 50px rgba(19,40,35,.13); display:grid; grid-template-columns:2fr repeat(4,1fr); gap:14px; }
label { display:flex; flex-direction:column; gap:7px; } label span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#687770}.wide{grid-column:span 2}
input,select { width:100%; height:48px; padding:0 13px; border:1px solid var(--line); border-radius:9px; background:#fafbf9; color:var(--ink); outline:none; } input:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(11,91,70,.1)}
.clear { align-self:end; height:48px; border:0; border-radius:9px; background:var(--ink); color:white; cursor:pointer; font-weight:700; }.clear:hover{background:var(--green)}
.results { width:min(1280px,calc(100% - 40px)); margin:78px auto; }
.results-head { display:flex; justify-content:space-between; align-items:end; margin-bottom:28px; }.results-head h2{margin:0;font-family:Georgia,serif;font-size:38px;font-weight:500;letter-spacing:-.03em}.results-head>p{color:#6b7873;font-size:14px}
.grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.card { min-width:0; background:white; border:1px solid #e0e3df; border-radius:15px; overflow:hidden; transition:.2s ease; }.card:hover{transform:translateY(-4px);box-shadow:0 16px 35px rgba(19,40,35,.12);border-color:#bdc8c3}
.photo-wrap { height:205px; background:#e9ebe7; position:relative; overflow:hidden; }.photo-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.card:hover img{transform:scale(1.035)}
.no-photo{height:100%;display:grid;place-items:center;color:#829088;font-size:13px;background:linear-gradient(135deg,#edf0ec,#dfe5e1)}
.portal,.status { position:absolute; top:12px; padding:7px 9px; border-radius:7px; color:white; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }.portal{left:12px;background:var(--green)}.status{right:12px;background:rgba(19,40,35,.86);max-width:58%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal.aliseda{background:#ef6b22}.portal.altamira{background:#1b55a6}.portal.hipoges{background:#30343b}.portal.servihabitat{background:#009887}.portal.solvia{background:#c6293e}
.card-body{padding:18px}.type{margin:0 0 7px;color:var(--green);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.card h3{margin:0;font-size:20px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.province{height:18px;margin:5px 0 18px;color:#718078;font-size:13px}.card-meta{padding-top:15px;border-top:1px solid #edf0ed;display:flex;align-items:baseline;justify-content:space-between}.card-meta strong{font-size:19px}.card-meta span{font-size:13px;color:#687770}.reference{margin:11px 0 0;color:#8a9690;font-size:11px}
.more { display:block; margin:36px auto 0; padding:14px 28px; border:0; border-radius:10px; background:var(--green);color:white;font-weight:800;cursor:pointer}.more:hover{background:#084635}.empty{text-align:center;padding:70px 20px;background:white;border-radius:15px}.empty h3{font-family:Georgia,serif;font-size:30px;margin:0}.empty p{color:#6c7973}
footer { padding:35px max(24px,5vw); background:var(--ink); color:#aab7b1; display:flex; justify-content:space-between; gap:30px; font-size:12px; }footer span{font-size:17px;font-weight:800;color:white}footer p{margin:0;max-width:650px;text-align:right}
@media(max-width:1050px){.search-panel{grid-template-columns:repeat(3,1fr)}.wide{grid-column:span 2}.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.header-count span{display:none}.hero{padding:58px 24px 110px}.search-panel{grid-template-columns:1fr;margin-top:-48px}.wide{grid-column:auto}.grid{grid-template-columns:repeat(2,1fr)}.results-head{align-items:start;flex-direction:column;gap:8px}.results-head>p{margin:0}.photo-wrap{height:180px}footer{flex-direction:column}footer p{text-align:left}}
@media(max-width:500px){.site-header{height:68px;padding:0 16px}.brand{font-size:17px}.brand-mark{width:37px;height:37px}.search-panel,.results{width:calc(100% - 24px)}.grid{grid-template-columns:1fr}.photo-wrap{height:230px}.results{margin-top:55px}.results-head h2{font-size:32px}}
