/* habitua.es — portal nacional. Paleta y logotipo en css/marca.css */
body{ font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; color:var(--h-text); background:#fff; }
a{ color:var(--h-primary); text-decoration:none; } a:hover{ color:var(--h-primary-dark); }
.btn-h{ background:var(--h-primary); color:#fff; border:none; font-weight:600; padding:.7rem 1.4rem; border-radius:10px; }
.btn-h:hover{ background:var(--h-primary-dark); color:#fff; }
.btn-h-outline{ border:2px solid var(--h-primary); color:var(--h-primary); font-weight:600; border-radius:10px; padding:.6rem 1.3rem; background:#fff; }
.btn-h-outline:hover{ background:var(--h-primary-soft); color:var(--h-primary-dark); }
.btn-accent{ background:var(--h-accent); color:#1f2937; border:none; font-weight:700; border-radius:10px; padding:.7rem 1.4rem; }
.btn-accent:hover{ background:#f0a52c; color:var(--h-text); }
/* Secundario sobre fondo oscuro: mismas medidas que .btn-h para que casen en altura y radio */
.btn-h-claro{ border:2px solid rgba(255,255,255,.5); color:#fff; font-weight:600; border-radius:10px; padding:calc(.7rem - 2px) calc(1.4rem - 2px); background:transparent; }
.btn-h-claro:hover{ background:rgba(255,255,255,.12); border-color:#fff; color:#fff; }
/* Variantes pequeñas: .btn-sm por sí solo no puede con el padding de .btn-h */
.btn-h.btn-sm, .btn-accent.btn-sm, .btn-h-claro.btn-sm{ padding:.35rem .8rem; font-size:.875rem; border-radius:8px; }
.btn-h-outline.btn-sm{ padding:calc(.35rem - 2px) calc(.8rem - 2px); font-size:.875rem; border-radius:8px; }

/* Navbar */
.hnav{ background:#fff; border-bottom:1px solid var(--h-border); }
.hnav .navbar-brand{ padding-top:.25rem; padding-bottom:.25rem; }
.hnav .nav-link{ color:#5A4A41; font-weight:500; padding-left:1rem !important; padding-right:1rem !important; }
.hnav .nav-link:hover, .hnav .nav-link.active{ color:var(--h-primary); }
.hnav .btn-publica{ background:var(--h-primary); color:#fff; font-weight:600; border-radius:10px; padding:.5rem 1rem; }
.hnav .btn-publica:hover{ background:var(--h-primary-dark); }

/* Hero */
.hhero{ background:linear-gradient(180deg,var(--h-bg) 0%,#FFFBF7 100%); color:var(--h-text); padding:3.5rem 0 4rem; position:relative; overflow:hidden; border-bottom:1px solid var(--h-border); }
.hhero h1{ font-family:var(--h-fuente-marca); font-weight:800; font-size:2.9rem; letter-spacing:-.015em; color:var(--h-text); }
.hhero p.lead{ color:var(--h-muted); }
.hhero::after{ content:""; position:absolute; right:-14%; top:-45%; width:46%; height:150%; background:rgba(255,92,43,.06); transform:rotate(12deg); border-radius:60px; }
.hbuscador{ background:#fff; border:1px solid var(--h-border); border-radius:16px; padding:.9rem; box-shadow:0 18px 45px rgba(36,28,24,.10); display:grid; grid-template-columns:1fr 1.3fr 1.3fr 1.3fr auto; gap:.6rem; position:relative; z-index:2; }
.hbuscador .form-select{ border-radius:10px; padding:.7rem .9rem; border-color:var(--h-border); }
.hbuscador.compacto{ box-shadow:none; padding:.6rem; }
@media (max-width:991px){ .hbuscador{ grid-template-columns:1fr 1fr; } .hbuscador .hb-btn{ grid-column:1/-1; } .hbuscador .hb-btn .btn{ width:100%; } .hhero h1{ font-size:1.8rem; } }

/* Cards */
.hcard{ display:block; background:#fff; border:1px solid var(--h-border); border-radius:14px; overflow:hidden; color:var(--h-text); transition:transform .2s, box-shadow .2s; height:100%; }
.hcard:hover{ transform:translateY(-3px); box-shadow:0 12px 30px rgba(36,28,24,.12); color:var(--h-text); }
.hcard-img{ position:relative; aspect-ratio:3/2; background:#F5E6DA; overflow:hidden; }
.hcard-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.hcard-nofoto{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#C9B4A5; font-size:2.2rem; background:linear-gradient(135deg,#F5E6DA,#FFF3EA); }
.hcard-op{ position:absolute; left:10px; top:10px; background:rgba(36,28,24,.78); color:#fff; font-size:.72rem; font-weight:600; padding:.25rem .55rem; border-radius:6px; text-transform:uppercase; letter-spacing:.04em; }
.hcard-badge{ position:absolute; right:10px; top:10px; background:var(--h-accent); color:#1f2937; font-size:.72rem; font-weight:700; padding:.25rem .55rem; border-radius:6px; }
.hcard-badge.nueva{ background:var(--h-exito); color:#fff; }
.hcard-nfotos{ position:absolute; right:10px; bottom:10px; background:rgba(36,28,24,.65); color:#fff; font-size:.72rem; padding:.2rem .5rem; border-radius:6px; }
.hcard-body{ padding:.9rem 1rem 1rem; }
.hcard-precio{ font-weight:800; font-size:1.2rem; color:var(--h-primary); }
.hcard-precio s{ color:#B2A096; font-weight:400; font-size:.85rem; margin-left:.3rem; }
.hcard-titulo{ font-weight:600; margin-top:.15rem; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.hcard-ubi{ color:var(--h-muted); font-size:.85rem; margin-top:.25rem; }
.hcard-ubi i{ margin-right:.25rem; color:var(--h-primary); }
.hcard-feat{ color:#5A4A41; font-size:.85rem; margin-top:.6rem; padding-top:.6rem; border-top:1px solid var(--h-border); }
.hcard-feat span{ color:#D9C7BA; margin:0 .15rem; }

/* Categorías y provincias */
.hcat{ display:flex; align-items:center; gap:.9rem; padding:1rem 1.1rem; background:var(--h-bg); border:1px solid var(--h-border); border-radius:12px; color:var(--h-text); transition:all .2s; height:100%; }
.hcat:hover{ background:var(--h-primary-soft); border-color:var(--h-primary); color:var(--h-text); }
.hcat i{ font-size:1.5rem; color:var(--h-primary); width:34px; text-align:center; }
.hcat .n{ color:var(--h-muted); font-size:.82rem; }
.hprov{ display:flex; flex-wrap:wrap; gap:.5rem; }
.hprov a{ display:inline-block; padding:.45rem 1rem; border:1px solid var(--h-border); border-radius:999px; background:#fff; color:var(--h-text); font-size:.92rem; transition:all .2s; }
.hprov a:hover{ background:var(--h-primary-soft); border-color:var(--h-primary); color:var(--h-primary-dark); }

/* Secciones */
.hsec{ padding:3rem 0; }
.hsec h2{ font-family:var(--h-fuente-marca); font-weight:800; font-size:1.7rem; letter-spacing:-.005em; }
.hsec .sub{ color:var(--h-muted); }
.hcta{ background:var(--h-dark); color:#F3E7DE; border-radius:18px; padding:2.5rem; }
.hcta h2{ color:#fff; }
.hcta .btn-h{ background:var(--h-accent); color:#1f2937; }
.hcta .btn-h:hover{ background:#f0a52c; }
.hstat{ font-weight:800; font-size:1.6rem; }
.hstat small{ display:block; font-size:.8rem; font-weight:500; opacity:.8; }

/* Listado */
.hlist-head{ background:var(--h-primary-soft); border-bottom:1px solid var(--h-border); padding:1.2rem 0; }
.hlist-head h1{ font-family:var(--h-fuente-marca); font-size:1.5rem; font-weight:800; margin:0; }
.hfiltros{ background:#fff; border:1px solid var(--h-border); border-radius:14px; padding:1.1rem; position:sticky; top:80px; }
.hfiltros h6{ font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; color:var(--h-muted); margin:1rem 0 .5rem; }
.hfiltros h6:first-child{ margin-top:0; }
.hfiltros .form-control, .hfiltros .form-select{ font-size:.9rem; }
.hfiltros .lista a{ display:flex; justify-content:space-between; padding:.25rem 0; color:#4A3B33; font-size:.9rem; }
.hfiltros .lista a.active{ color:var(--h-primary); font-weight:700; }
.hfiltros .lista a span{ color:var(--h-muted); font-size:.8rem; }
.hvista .btn{ border-radius:8px; padding:.35rem .8rem; font-size:.875rem; line-height:1.5; border-width:1px; }
#hmapa{ height:calc(100vh - 220px); min-height:480px; border-radius:14px; border:1px solid var(--h-border); }
.leaflet-popup-content{ margin:8px 10px; }
.hpop img{ width:100%; height:110px; object-fit:cover; border-radius:6px; }
.hpop .p{ font-weight:800; color:var(--h-primary); margin-top:.3rem; }
.breadcrumb{ font-size:.85rem; }
.breadcrumb a{ color:var(--h-muted); }
.pagination .page-link{ color:var(--h-primary); border-radius:8px; margin:0 2px; }
.pagination .page-item.active .page-link{ background:var(--h-primary); border-color:var(--h-primary); }

/* Ficha */
.hficha-precio{ font-size:2rem; font-weight:800; color:var(--h-primary); }
.hficha-precio s{ font-size:1rem; color:#B2A096; font-weight:400; margin-left:.5rem; }
.hgal{ border-radius:16px; overflow:hidden; background:var(--h-dark); }
.hgal .carousel-item img{ width:100%; height:520px; object-fit:contain; background:var(--h-dark); }
.hgal-thumbs{ display:flex; gap:.5rem; margin-top:.6rem; overflow-x:auto; padding-bottom:.3rem; }
.hgal-thumbs img{ width:96px; height:70px; object-fit:cover; border-radius:8px; cursor:pointer; opacity:.7; border:2px solid transparent; flex:0 0 auto; }
.hgal-thumbs img.active, .hgal-thumbs img:hover{ opacity:1; border-color:var(--h-primary); }
.hgal-nofoto{ height:360px; display:flex; align-items:center; justify-content:center; color:#C9B4A5; font-size:3rem; background:linear-gradient(135deg,#F5E6DA,#FFF3EA); border-radius:16px; }
.hfeat{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.6rem; }
.hfeat div{ background:var(--h-bg); border:1px solid var(--h-border); border-radius:10px; padding:.7rem .8rem; font-size:.9rem; }
.hfeat div i{ color:var(--h-primary); width:22px; }
.hfeat div b{ display:block; font-size:1.05rem; }
.hbox{ background:#fff; border:1px solid var(--h-border); border-radius:14px; padding:1.3rem; }
.hbox.sticky{ position:sticky; top:80px; }
.hanunciante img{ max-height:60px; max-width:180px; object-fit:contain; }
.hanunciante .nombre{ font-weight:700; font-size:1.05rem; }
.hanunciante .tipo{ font-size:.8rem; color:var(--h-muted); text-transform:uppercase; letter-spacing:.05em; }
.hdesc{ white-space:pre-line; line-height:1.7; }
#hficha-mapa{ height:340px; border-radius:14px; border:1px solid var(--h-border); }
.hpin{ background:none; border:0; }
.hpin svg{ display:block; filter:drop-shadow(0 3px 5px rgba(36,28,24,.35)); }
.hcert{ display:inline-block; padding:.2rem .6rem; border-radius:6px; color:#fff; font-weight:700; }
.hcert-1{background:#00a651}.hcert-2{background:#4cb848}.hcert-3{background:#bfd730}.hcert-4{background:#fff200;color:#333}.hcert-5{background:#fdb913}.hcert-6{background:#f37021}.hcert-7{background:#ed1c24}

/* Anunciantes */
.hinmo{ display:flex; gap:1rem; align-items:center; background:#fff; border:1px solid var(--h-border); border-radius:14px; padding:1rem 1.2rem; height:100%; color:var(--h-text); transition:all .2s; }
.hinmo:hover{ border-color:var(--h-primary); box-shadow:0 8px 24px rgba(36,28,24,.10); color:var(--h-text); }
.hinmo .logo{ width:90px; height:60px; display:flex; align-items:center; justify-content:center; background:var(--h-bg); border-radius:10px; flex:0 0 auto; font-family:var(--h-fuente-marca); font-weight:800; color:var(--h-primary); font-size:1.6rem; }
.hinmo .logo img{ max-width:80px; max-height:50px; object-fit:contain; }
.hinmo .nombre{ font-weight:700; }
.hinmo .n{ color:var(--h-muted); font-size:.85rem; }

/* Footer */
.hfoot{ background:var(--h-dark); color:#C4B3A8; padding:3rem 0 1.5rem; margin-top:3rem; }
.hfoot h5{ color:#fff; font-weight:700; font-size:.95rem; margin-bottom:1rem; }
.hfoot a{ color:#C4B3A8; } .hfoot a:hover{ color:#fff; }
.hfoot ul{ list-style:none; padding:0; margin:0; } .hfoot li{ margin-bottom:.45rem; font-size:.92rem; }
.hfoot .copy{ border-top:1px solid #3A2E28; margin-top:2rem; padding-top:1.2rem; font-size:.85rem; }

/* Cookies */
.hcookies{ position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:2000; background:#fff; border:1px solid var(--h-border); border-radius:14px; padding:1rem 1.2rem; box-shadow:0 10px 40px rgba(36,28,24,.18); display:flex; gap:1rem; align-items:center; flex-wrap:wrap; font-size:.9rem; }
@media (min-width:768px){ .hcookies{ left:auto; max-width:560px; } }

/* Formularios */
.hform .form-control{ border-radius:10px; padding:.65rem .9rem; }
.hform label{ font-size:.85rem; font-weight:600; color:#5A4A41; margin-bottom:.25rem; }
.hmsg-ok{ background:#E8F6EF; border:1px solid #BFE6D4; color:#1E6A47; border-radius:10px; padding:1rem; }
.hmsg-ko{ background:#FDECEC; border:1px solid #F6C9C9; color:#8E2E2E; border-radius:10px; padding:1rem; }

/* 404 */
.h404{ text-align:center; padding:5rem 0; }
.h404 .num{ font-family:var(--h-fuente-marca); font-size:5rem; font-weight:800; color:var(--h-primary-light); line-height:1; }

/* Botones de opción (registro) */
.btn-check:checked + .btn-outline-secondary{ background:var(--h-primary); border-color:var(--h-primary); color:#fff; }

/* ── Franja de ventajas del hero ─────────────────────────────────────────── */
.hventajas{
	display:flex; justify-content:center; flex-wrap:wrap; gap:.6rem 2.2rem;
	margin-top:1.6rem; font-size:.95rem; color:#5A4A41;
}
.hventajas > div{ display:flex; align-items:center; gap:.5rem; }
.hventajas i{ color:var(--h-primary); font-size:1.05rem; }
.hventajas b{ color:var(--h-text); }
@media (max-width:575px){ .hventajas{ flex-direction:column; align-items:flex-start; gap:.5rem; max-width:320px; margin-left:auto; margin-right:auto; } }

/* ── Bloque para profesionales ───────────────────────────────────────────── */
.hpro{ display:grid; grid-template-columns:1.15fr .85fr; gap:2.5rem; align-items:center; }
.hpro-et{ font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--h-primary); margin-bottom:.5rem; }
.hpro h2{ font-family:var(--h-fuente-marca); font-weight:800; font-size:1.95rem; letter-spacing:-.01em; margin-bottom:.75rem; }
.hpro p{ color:#5A4A41; line-height:1.7; margin-bottom:1rem; }
.hpro-lista{ list-style:none; padding:0; margin:0; }
.hpro-lista li{ display:flex; gap:.65rem; align-items:flex-start; padding:.35rem 0; color:#4A3B33; }
.hpro-lista i{ color:var(--h-exito); margin-top:.28rem; font-size:.85rem; }
.hpro-visual{ display:flex; justify-content:center; }
.hpro-card{ width:100%; max-width:380px; background:#fff; border:1px solid var(--h-border); border-radius:14px; box-shadow:0 18px 45px rgba(36,28,24,.12); overflow:hidden; }
.hpro-card-cab{ background:#F6EDE6; padding:.6rem .8rem; display:flex; align-items:center; gap:.35rem; border-bottom:1px solid var(--h-border); }
.hpro-card-cab .dot{ width:9px; height:9px; border-radius:50%; background:#D9C7BA; }
.hpro-card-cab .url{ flex:1; margin-left:.5rem; background:#fff; border-radius:6px; padding:.2rem .6rem; font-size:.72rem; color:var(--h-muted); }
.hpro-card-body{ padding:1.1rem; }
.hpro-logo{ font-family:var(--h-fuente-marca); font-weight:800; color:var(--h-primary); font-size:1.15rem; margin-bottom:.8rem; }
.hpro-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.hpro-grid div{ height:62px; border-radius:8px; background:linear-gradient(135deg,#F5E6DA,#FFF3EA); }
@media (max-width:991px){ .hpro{ grid-template-columns:1fr; gap:1.8rem; } .hpro-visual{ order:-1; } .hpro h2{ font-size:1.6rem; } }

/* ── Zonas en la portada ─────────────────────────────────────────────────── */
.hzona{ background:#fff; border:1px solid var(--h-border); border-radius:14px; padding:1.1rem 1.25rem; height:100%; }
.hzona .prov{ display:flex; justify-content:space-between; align-items:center; font-weight:700; color:var(--h-text); font-size:1.05rem; }
.hzona .prov:hover{ color:var(--h-primary); }
.hzona .prov span{ font-weight:600; font-size:.8rem; color:var(--h-muted); background:var(--h-bg); border-radius:999px; padding:.1rem .55rem; }
.hzona .muni{ margin-top:.6rem; padding-top:.6rem; border-top:1px solid var(--h-border); font-size:.9rem; line-height:1.9; }
.hzona .muni a{ color:#5A4A41; }
.hzona .muni a:not(:last-child)::after{ content:" · "; color:#D9C7BA; }
.hzona .muni a:hover{ color:var(--h-primary); }

/* Botón claro sobre fondos oscuros */
.btn-h-claro{ background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.35); font-weight:600; border-radius:10px; padding:.7rem 1.4rem; }
.btn-h-claro:hover{ background:#fff; color:var(--h-dark); }
