*{box-sizing:border-box}
:root{
--bg:#f5f7f8;
--card:#fff;
--ink:#1f2933;
--muted:#68737d;
--line:#dbe3e7;
--brand:#155e59;
--brand2:#0f766e;
--soft:#e9f5f3;
--score:#fff4c2;
--scoreink:#76530a;
--danger:#fff3f3
}
html{-webkit-text-size-adjust:100%}
body{
margin:0;
background:var(--bg);
color:var(--ink);
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif
}
.wrap{
width:min(100% - 24px,1120px);
margin:auto;
padding:22px 0 48px
}
.hero{margin-bottom:16px}
.eyebrow{
margin:0 0 6px;
color:var(--brand);
font-size:12px;
font-weight:850;
letter-spacing:.08em
}
h1{
margin:0;
font-size:clamp(29px,7vw,48px);
line-height:1.04
}
.lead{
margin:9px 0 0;
color:var(--muted);
line-height:1.5
}

.filters{
background:var(--card);
border:1px solid var(--line);
border-radius:16px;
padding:14px;
margin:16px 0 10px;
box-shadow:0 5px 18px rgba(0,0,0,.03)
}

label{
display:block;
margin:0 0 6px;
font-size:12px;
font-weight:800;
color:#46515b
}

input,select{
width:100%;
min-height:46px;
border:1px solid #cfd8dc;
border-radius:10px;
background:#fff;
color:var(--ink);
padding:10px 12px;
font:inherit;
font-size:15px
}

.searchrow{
display:grid;
grid-template-columns:minmax(0,1fr) auto;
gap:9px;
align-items:end
}
.searchbox{min-width:0}

.quicksearch{
min-height:46px;
border:0;
border-radius:10px;
padding:0 16px;
background:var(--brand);
color:#fff;
font:inherit;
font-weight:850;
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
gap:7px
}

.advanced{
margin-top:12px;
border-top:1px solid var(--line);
padding-top:10px
}
.advanced summary{
cursor:pointer;
list-style:none;
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
padding:6px 2px;
color:var(--brand);
font-weight:850
}
.advanced summary::-webkit-details-marker{display:none}
.advanced summary::after{
content:"＋";
font-size:20px;
line-height:1;
color:var(--brand)
}
.advanced[open] summary::after{content:"−"}
.advanced summary small{
display:none;
color:var(--muted);
font-weight:500;
font-size:12px;
margin-left:auto
}
.advanced-inner{padding-top:12px}

.filtergrid{
display:grid;
grid-template-columns:1fr;
gap:11px
}
.filteractions{
display:grid;
grid-template-columns:1fr auto;
gap:9px;
margin-top:13px
}
.apply,.clear{
min-height:46px;
border:0;
border-radius:10px;
font:inherit;
font-weight:800;
display:flex;
align-items:center;
justify-content:center;
text-decoration:none
}
.apply{
background:var(--brand);
color:#fff;
cursor:pointer
}
.clear{
padding:0 16px;
background:#edf1f3;
color:var(--ink)
}

.resultbar{
margin:10px 2px 12px;
color:var(--muted);
font-size:14px
}
.resultbar strong{
color:var(--brand);
font-size:20px
}

.grid{
display:grid;
grid-template-columns:1fr;
gap:14px
}
.card{
min-width:0;
background:var(--card);
border:1px solid var(--line);
border-radius:16px;
padding:16px;
box-shadow:0 5px 18px rgba(0,0,0,.035)
}
.topline{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:10px
}
.code{
margin:0 0 4px;
color:var(--muted);
font-size:10px;
font-weight:750
}
.card h2{
margin:0;
color:var(--brand);
font-size:19px;
line-height:1.22;
overflow-wrap:anywhere
}
.score{
flex:0 0 auto;
padding:5px 8px;
border-radius:8px;
background:var(--score);
color:var(--scoreink);
font-size:13px;
font-weight:850
}
.location{
margin:13px 0 3px;
font-size:14px;
font-weight:750
}
.address{
margin:0;
color:var(--muted);
font-size:14px;
line-height:1.45
}
.details{
margin:14px 0;
border-top:1px solid var(--line)
}
.details>div{
display:grid;
grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
gap:10px;
padding:10px 0;
border-bottom:1px solid var(--line)
}
dt{
color:var(--muted);
font-size:13px
}
dd{
margin:0;
text-align:right;
font-size:13px;
font-weight:750;
overflow-wrap:anywhere
}
.actions{
display:grid;
grid-template-columns:1fr 1fr;
gap:9px
}
.btn{
min-height:44px;
display:flex;
align-items:center;
justify-content:center;
padding:10px;
border-radius:10px;
background:#edf2f4;
color:var(--ink);
text-decoration:none;
font-size:14px;
font-weight:800
}
.btn.primary{
background:var(--brand);
color:#fff
}
.notice{
margin:18px 0;
padding:14px;
border:1px solid var(--line);
border-radius:12px;
background:#fff
}
.notice.error{background:var(--danger)}
footer{
padding-top:28px;
text-align:center;
color:var(--muted);
font-size:12px;
line-height:1.5
}

/* MÓVIL: filtros plegables */
@media(max-width:679px){
    .wrap{
        width:min(100% - 20px,1120px);
        padding-top:18px
    }

    .hero{margin-bottom:12px}
    .lead{font-size:15px}
    .filters{margin-top:12px;padding:12px}

    .quicksearch span{display:none}
    .quicksearch{
        width:48px;
        padding:0;
        font-size:18px
    }

    .advanced:not([open]) .advanced-inner{
        display:none
    }

    .resultbar{margin-top:8px}
    .card{padding:15px}
    .details>div{grid-template-columns:1fr auto}
}

/* TABLET + ESCRITORIO: filtros SIEMPRE visibles */
@media(min-width:680px){

    .advanced{
        display:block !important;
        margin-top:14px;
        padding-top:14px;
        border-top:1px solid var(--line)
    }

    .advanced > summary{
        display:none !important;
    }

    .advanced > .advanced-inner{
        display:block !important;
        padding-top:0 !important;
    }

    .filtergrid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

@media(min-width:1000px){

    .filtergrid{
        grid-template-columns:repeat(3,minmax(0,1fr))
    }

    .grid{
        grid-template-columns:repeat(3,minmax(0,1fr))
    }
}


/* RC3: el JS fuerza <details class="advanced"> a OPEN en >=680px.
   Esta regla asegura la visualización del contenido una vez abierto. */
@media(min-width:680px){
    details.advanced[open] > .advanced-inner{
        display:block !important;
    }
}
