:root{
  --red:#E51E21;
  --red-dark:#B7191A;
  --ink:#181818;
  --ink-soft:#5B5D5C;
  --bg:#F6F6F4;
  --card:#FFFFFF;
  --line:#EAEAE7;
  --line-input:#B7B6AF;
  --radius:16px;
  --radius-sm:10px;
  --radius-pill:999px;
  --shadow:0 10px 30px rgba(20,20,20,.08);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif; background:var(--bg); color:var(--ink); line-height:1.5; overflow-x:hidden;}
body.mnav-open{overflow:hidden;}
h1,h2,h3,h4,.jak{font-family:'Plus Jakarta Sans',sans-serif;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
button{font-family:inherit; cursor:pointer;}

.btn{display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14.5px; padding:14px 24px; border-radius:var(--radius-pill); border:1.5px solid transparent; transition:transform .12s, background .15s;}
.btn-red{background:var(--red); color:#fff;}
.btn-red:hover{background:var(--red-dark);}
.btn-outline{background:rgba(255,255,255,.08); color:#fff; border-color:#fff;}
.btn-outline:hover{background:#fff; color:var(--ink);}
.btn-white{background:#fff; color:var(--red);}
.btn-whatsapp{background:#25D366; color:#fff;}
.btn-whatsapp:hover{background:#1EBE5A;}
.btn:active{transform:scale(.97);}

/* header */
header{position:sticky; top:0; z-index:50; height:78px; background:#fff; border-bottom:1px solid var(--line);}
header .wrap{display:flex; align-items:center; justify-content:space-between; padding:10px 24px; height:100%;}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{height:58px; width:auto;}
.logo-white{display:none;}

nav.desktop-nav{display:flex; gap:26px; margin-right:8px; align-items:center;}
nav.desktop-nav a{font-weight:600; font-size:14.5px; color:var(--ink-soft);}
nav.desktop-nav a:hover{color:var(--ink);}
nav.desktop-nav a.nav-hook{color:var(--red); font-weight:800; border:1.5px solid var(--red); padding:6px 14px; border-radius:var(--radius-pill);}
nav.desktop-nav a.nav-hook:hover{background:var(--red); color:#fff;}

.nav-drop{position:relative;}
.nav-drop > a{display:flex; align-items:center; gap:5px;}
.nav-chev{transition:transform .15s;}
.nav-drop:hover .nav-chev{transform:rotate(180deg);}
.nav-drop-menu{
  position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:14px;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow);
  min-width:200px; padding:8px; opacity:0; visibility:hidden; transform:translateX(-50%) translateY(6px);
  transition:opacity .15s, transform .15s, visibility .15s;
}
.nav-drop:hover .nav-drop-menu{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.nav-drop-menu a{display:flex; justify-content:space-between; gap:14px; padding:9px 12px; border-radius:8px; font-size:13.5px; font-weight:600; color:var(--ink);}
.nav-drop-menu a:hover{background:var(--bg); color:var(--red);}
.nav-drop-menu a span{color:var(--ink-soft); font-weight:600; font-size:12px;}
.nav-drop-menu a:first-child{border-bottom:1px solid var(--line); margin-bottom:4px; padding-bottom:10px; font-weight:800;}
.head-actions{display:flex; align-items:center; gap:12px;}
.icon-btn{width:44px; height:44px; border-radius:var(--radius-sm); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; background:#fff;}

/* hero */
.hero{position:relative; min-height:clamp(380px, 58vh, 500px); display:flex; align-items:flex-end; overflow:hidden;}
.hero-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.hero-bg::after{content:''; position:absolute; inset:0; background:linear-gradient(100deg, rgba(8,8,8,.92) 0%, rgba(8,8,8,.72) 45%, rgba(8,8,8,.30) 80%);}
.hero-inner{position:relative; color:#fff; padding-top:48px; padding-bottom:110px; max-width:640px;}
.hero-inner h1{font-size:clamp(28px,4.4vw,44px); font-weight:800; line-height:1.14; letter-spacing:-.01em; margin-bottom:16px;}
.hero-inner h1 span{color:#FF9C8F;}
.hero-inner p{font-size:15.5px; color:#E5E4E1; max-width:46ch; margin-bottom:26px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

/* search card */
.search-wrap{padding:0 24px; margin-top:-42px; position:relative; z-index:3;}
.search-card{max-width:1180px; margin:0 auto; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:24px 24px 20px;}
.op-tabs{display:flex; gap:24px; border-bottom:1px solid var(--line); margin-bottom:16px;}
.op-tabs button{background:none; border:none; padding:9px 2px; font-weight:700; font-size:14.5px; color:var(--ink-soft); position:relative;}
.op-tabs button.active{color:var(--red);}
.op-tabs button.active::after{content:''; position:absolute; left:0; right:0; bottom:-1px; height:2.5px; background:var(--red);}
.filters{display:grid; grid-template-columns:repeat(4,1fr) auto; gap:12px; align-items:center;}
.filters select{width:100%; padding:12px 14px; border:1px solid var(--line-input); border-radius:var(--radius-sm); background:#fff; appearance:none; font-family:inherit; font-size:13.5px; font-weight:600; color:var(--ink);}
.filters .btn-red{padding:13px 24px; justify-content:center; white-space:nowrap;}

/* sections */
section{padding:32px 0;}
@media (min-width:641px){
  section{padding:24px 0;}
}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:26px; flex-wrap:wrap; gap:10px;}
.eyebrow{font-size:12px; font-weight:800; letter-spacing:.08em; color:var(--red); text-transform:uppercase; margin-bottom:6px;}
.section-head h2{font-size:clamp(22px,2.8vw,30px); font-weight:800; letter-spacing:-.01em;}
.see-all{font-weight:700; font-size:14px; color:var(--red); display:flex; align-items:center; gap:6px;}

/* servicios */
.services-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.service-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 18px; text-align:center;}
.service-ic{width:52px; height:52px; border-radius:14px; background:#FCEAE8; color:var(--red); display:flex; align-items:center; justify-content:center; margin:0 auto 14px;}
.service-card h3{font-size:15px; font-weight:700; margin-bottom:6px;}
.service-card p{font-size:12.5px; color:var(--ink-soft);}

/* listing cards */
.grid-listings{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.card{background:var(--card); border-radius:var(--radius); overflow:hidden; box-shadow:0 4px 16px rgba(20,20,20,.05); border:1px solid var(--line); transition:transform .15s, box-shadow .15s;}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow);}
.card-photo{position:relative; aspect-ratio:4/3; background-size:cover; background-position:center; background-color:#e7e5df;}
.card-tag{position:absolute; top:12px; left:12px; background:var(--red); color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.05em; padding:5px 10px; border-radius:6px; text-transform:uppercase;}
.card-tag.alq{background:#2E5339;}
.card-body{padding:16px 18px 18px;}
.loc{display:flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; color:var(--ink-soft); letter-spacing:.03em; text-transform:uppercase; margin-bottom:8px;}
.card-body h3{font-size:16.5px; font-weight:700; margin-bottom:6px; letter-spacing:-.01em;}
.price{color:var(--red); font-weight:800; font-size:17px; margin-bottom:12px;}
.specs{display:flex; gap:14px; padding-top:12px; border-top:1px solid var(--line); font-size:12.5px; font-weight:600; color:var(--ink-soft); margin-bottom:12px;}
.ver{color:var(--red); font-weight:700; font-size:13.5px; display:flex; align-items:center; gap:5px;}

/* tasador cta */
.tasador-cta{background:var(--red); border-radius:var(--radius); padding:40px; display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap; position:relative; overflow:hidden;}
.tasador-cta::after{content:''; position:absolute; right:-40px; top:-40px; width:220px; height:220px; border:2px solid rgba(255,255,255,.18); border-radius:50%;}
.tasador-cta .eyebrow{color:#FFD3CF;}
.tasador-cta h2{color:#fff; font-size:clamp(20px,2.6vw,28px); font-weight:800; max-width:20ch; margin-bottom:8px;}
.tasador-cta p{color:#FFE1DE; font-size:14.5px; max-width:38ch;}

/* trayectoria / why us */
.trayectoria{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center;}
.trayectoria h2{font-size:clamp(22px,2.8vw,30px); font-weight:800; margin-bottom:14px;}
.trayectoria p{color:var(--ink-soft); font-size:14.5px; margin-bottom:24px; max-width:48ch;}
.trust{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.trust-item{display:flex; gap:12px; align-items:flex-start;}
.trust-ic{width:44px; height:44px; border-radius:var(--radius-sm); background:#FBE7E6; color:var(--red); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.trust-item .n{font-weight:800; font-size:17px; letter-spacing:-.01em;}
.trust-item .l{font-size:12px; color:var(--ink-soft); font-weight:600;}
.trayectoria-photo{border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3; background:#e7e5df; display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-size:13px; text-align:center; padding:20px; border:1px dashed var(--line);}

/* testimonials */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.testi-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px;}
.testi-card .stars{color:#F5A623; font-size:13px; margin-bottom:10px;}
.testi-card p{font-size:13.5px; color:var(--ink-soft); margin-bottom:14px;}
.testi-card .name{font-weight:700; font-size:13.5px;}
.testi-empty{border:1px dashed var(--line); border-radius:var(--radius); padding:30px; text-align:center; color:var(--ink-soft); font-size:13.5px;}

/* barrios */
.barrios{display:flex; flex-wrap:wrap; gap:10px;}
.barrios span{background:#fff; border:1px solid var(--line); padding:9px 16px; border-radius:var(--radius-pill); font-size:13px; font-weight:600; color:var(--ink-soft);}
.barrios span.more{color:var(--red); border-color:var(--red); background:#FBE7E6;}

/* footer */
footer{background:var(--ink); color:#C9C9C6; padding-top:56px; margin-top:20px;}
.foot-grid{display:grid; grid-template-columns:1.1fr .65fr .65fr .85fr .95fr; gap:30px; padding-bottom:40px; border-bottom:1px solid #2E2E2C;}
footer h5{font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#8A8A87; margin-bottom:16px;}
footer .foot-logo{color:#fff; font-weight:800; font-size:19px; margin-bottom:10px;}
footer p{font-size:13px; line-height:1.6;}
footer ul{list-style:none;}
footer li{margin-bottom:9px; font-size:13.5px;}
footer li a:hover{color:#fff;}
.foot-bottom{display:flex; justify-content:space-between; padding:18px 0; font-size:11.5px; color:#77776F; flex-wrap:wrap; gap:8px;}
.foot-credit{text-align:center; font-size:11px; color:#5A5A54; padding-bottom:20px;}
.foot-credit a{color:#8A8A87; font-weight:700; border-bottom:1px solid #5A5A54;}
.foot-credit a:hover{color:#fff;}

/* whatsapp float */
.wa-float{position:fixed; bottom:22px; right:22px; z-index:60; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.25);}

.menu-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; position:relative; z-index:70;}
.menu-toggle span{width:22px; height:2px; background:var(--ink); transition:transform .2s, opacity .2s;}
body.mnav-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.mnav-open .menu-toggle span:nth-child(2){opacity:0;}
body.mnav-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-nav{
  display:none; position:fixed; top:78px; right:0; width:min(86vw, 340px); height:calc(100vh - 78px);
  background:#fff; z-index:65; flex-direction:column; padding:18px; gap:2px; overflow-y:auto;
  transform:translateX(100%); transition:transform .25s ease; box-shadow:-8px 0 24px rgba(0,0,0,.12);
}
body.mnav-open .mobile-nav{transform:translateX(0);}
.mnav-backdrop{
  position:fixed; inset:78px 0 0 0; background:rgba(10,10,10,.4); z-index:60;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s, visibility .25s;
}
body.mnav-open .mnav-backdrop{opacity:1; visibility:visible; pointer-events:auto;}

.mobile-nav > a, .mnav-toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%; background:none; border:none;
  padding:14px 4px; font-family:inherit; font-weight:700; font-size:15.5px; color:var(--ink); border-bottom:1px solid var(--line);
  text-align:left; cursor:pointer;
}
.mnav-hook{color:var(--red) !important;}
.mnav-toggle svg{transition:transform .2s; color:var(--ink-soft);}
.mnav-group.open .mnav-toggle svg{transform:rotate(180deg);}
.mnav-sub{display:none; flex-direction:column; padding:4px 4px 10px 14px;}
.mnav-group.open .mnav-sub{display:flex;}
.mnav-sub a{display:flex; justify-content:space-between; gap:10px; padding:10px 6px; font-size:14px; font-weight:600; color:var(--ink-soft); border-bottom:none;}
.mnav-sub a span{color:var(--ink-soft); font-size:12px; font-weight:600;}
.mnav-sub a:first-child{font-weight:800; color:var(--ink);}

.mnav-social{display:flex; gap:12px; padding:16px 4px 10px;}
.mnav-social a{width:40px; height:40px; border-radius:var(--radius-sm); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--ink);}
.mobile-nav .btn{margin:8px 4px 4px;}

/* ── EQUIPO nosotros.php ── */
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.team-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 20px; text-align:center;}
.avatar-circle{
  width:64px; height:64px; border-radius:50%; background:var(--red); color:#fff;
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px;
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:20px; letter-spacing:.02em;
}
.team-card h3{font-size:16px; font-weight:800; margin-bottom:4px;}
.team-role{font-size:13px; font-weight:700; color:var(--red); margin-bottom:12px;}
.team-creds{display:flex; flex-direction:column; gap:6px;}
.team-creds span{font-size:12px; font-weight:600; color:var(--ink-soft); background:var(--bg); border-radius:6px; padding:5px 8px;}

@media (max-width:980px){
  .team-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .team-grid{grid-template-columns:1fr;}
}

/* ── LISTADO propiedades.php ── */
.list-hero{padding:36px 0 0;}
.list-hero h1{font-size:clamp(22px,3vw,30px); font-weight:800; margin-bottom:6px;}
.list-hero p{color:var(--ink-soft); font-size:14px;}

.filter-bar{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px; margin:20px 0 30px;}
.filter-tabs{display:flex; gap:22px; border-bottom:1px solid var(--line); margin-bottom:14px;}
.filter-tabs button{background:none; border:none; padding:8px 2px; font-weight:700; font-size:14.5px; color:var(--ink-soft); position:relative;}
.filter-tabs button.active{color:var(--red);}
.filter-tabs button.active::after{content:''; position:absolute; left:0; right:0; bottom:-1px; height:2.5px; background:var(--red);}
.filter-row{display:grid; grid-template-columns:repeat(4,1fr); gap:10px;}
.filter-row select, .filter-row input{padding:11px 12px; border:1px solid var(--line-input); border-radius:var(--radius-sm); font-family:inherit; font-size:13.5px; font-weight:600; color:var(--ink); background:#fff;}

.list-count{font-size:13.5px; color:var(--ink-soft); margin-bottom:16px;}

.plist{display:flex; flex-direction:column; gap:14px;}
.pitem{display:flex; gap:16px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:12px; transition:box-shadow .15s, transform .15s;}
.pitem:hover{box-shadow:var(--shadow); transform:translateY(-2px);}
.pitem-photo{width:150px; height:120px; flex-shrink:0; border-radius:var(--radius-sm); background-size:cover; background-position:center; background-color:#e7e5df; position:relative;}
.pitem-tag{position:absolute; top:8px; left:8px; background:var(--red); color:#fff; font-size:9.5px; font-weight:800; letter-spacing:.05em; padding:4px 8px; border-radius:6px; text-transform:uppercase;}
.pitem-tag.alq{background:#2E5339;}
.pitem-body{flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center;}
.pitem-loc{font-size:11px; font-weight:700; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.03em; margin-bottom:4px;}
.pitem-title{font-size:15.5px; font-weight:700; margin-bottom:4px; letter-spacing:-.01em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.pitem-specs{font-size:12.5px; color:var(--ink-soft); margin-bottom:6px;}
.pitem-foot{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.pitem-price{color:var(--red); font-weight:800; font-size:16px;}

.load-more-wrap{text-align:center; margin:30px 0 10px;}
.btn-loadmore{padding:12px 30px; border-radius:var(--radius-pill); border:1.5px solid var(--ink); background:#fff; font-weight:700; font-size:13.5px;}
.btn-loadmore:hover{background:var(--ink); color:#fff;}
.btn-loadmore:disabled{opacity:.35; cursor:not-allowed;}

.state-box{text-align:center; padding:60px 20px; color:var(--ink-soft);}
.state-box .spin{width:32px; height:32px; margin:0 auto 14px; border:2px solid var(--line); border-top-color:var(--red); border-radius:50%; animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.state-box h3{font-size:15px; font-weight:700; color:var(--ink); margin-bottom:5px;}

@media (max-width:640px){
  .filter-row{grid-template-columns:1fr 1fr;}
  .pitem{flex-direction:column;}
  .pitem-photo{width:100%; height:160px;}
  .pitem-title{white-space:normal;}
}

/* ── FICHA ficha.php ── */
.ficha-wrap{padding:30px 0 60px;}
.ficha-back{font-size:13.5px; font-weight:700; color:var(--ink-soft); display:inline-flex; align-items:center; gap:6px; margin-bottom:18px;}
.ficha-head{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; margin-bottom:18px;}
.ficha-eyebrow{font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--red);}
.ficha-head-price{text-align:right;}
.ficha-title{font-size:clamp(20px,2.6vw,28px); font-weight:800; margin:0 0 6px; letter-spacing:-.01em;}
.ficha-loc{font-size:13.5px; color:var(--ink-soft);}

.gal{margin-bottom:20px;}
.gal-main{aspect-ratio:4/3; max-height:420px; border-radius:var(--radius); background-size:cover; background-position:center; background-color:#e7e5df; position:relative; overflow:hidden;}
.gal-nav{position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; border:none; background:rgba(255,255,255,.92); font-size:24px; line-height:1; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 10px rgba(0,0,0,.2);}
.gal-prev{left:14px;} .gal-next{right:14px;}
.gal-nav:hover{background:#fff;}
.gal-count{position:absolute; bottom:12px; right:14px; background:rgba(20,20,20,.65); color:#fff; font-size:12px; font-weight:700; padding:5px 11px; border-radius:var(--radius-pill);}
.ficha-thumbs{display:flex; gap:8px; margin-top:10px; overflow-x:auto; padding-bottom:4px;}
.ficha-thumbs img{width:86px; height:64px; object-fit:cover; border-radius:8px; flex-shrink:0; cursor:pointer; border:2px solid transparent; opacity:.75; transition:opacity .15s, border-color .15s;}
.ficha-thumbs img:hover{opacity:1;}
.ficha-thumbs img.active{border-color:var(--red); opacity:1;}

.ficha-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr;
  grid-template-areas:
    "gal  side"
    "desc side";
  gap:26px;
  align-items:start;
}
.ficha-grid > *{min-width:0;}
.gal-wrap{grid-area:gal;}
.ficha-below{grid-area:desc; margin-top:0;}
.ficha-h2{font-size:17px; font-weight:800; margin:26px 0 12px; padding-bottom:8px; border-bottom:2px solid var(--red); display:inline-block;}
.ficha-chips{display:flex; gap:10px; flex-wrap:wrap; margin-top:4px;}
.ficha-chips span{background:#fff; border:1px solid var(--line); padding:9px 15px; border-radius:var(--radius-pill); font-size:13.5px; font-weight:700;}
.ficha-desc{font-size:14.5px; color:var(--ink-soft); line-height:1.6;}
.ficha-desc p{margin:0 0 12px;}
.ficha-desc p:last-child{margin-bottom:0;}
.feats{display:flex; flex-wrap:wrap; gap:8px;}
.feats span{background:#fff; border:1px solid var(--line); padding:7px 13px; border-radius:8px; font-size:12.5px; font-weight:600; color:var(--ink-soft);}
.det-grid{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.det-row{display:flex; justify-content:space-between; gap:14px; padding:11px 16px; font-size:13.5px; border-bottom:1px solid var(--line);}
.det-row:last-child{border-bottom:none;}
.det-row:nth-child(odd){background:var(--bg);}
.det-row span{color:var(--ink-soft); font-weight:600;}
.det-row strong{font-weight:700; text-align:right;}

.ficha-side{grid-area:side; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px; position:sticky; top:90px;}
.btn-side{width:100%; justify-content:center; margin-top:14px;}
.side-phone{font-size:12.5px; color:var(--ink-soft); text-align:center; margin-top:10px;}
.side-phone a{color:var(--red); font-weight:700;}
.side-divider{height:1px; background:var(--line); margin:18px 0 14px;}
.side-subtitle{font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px;}
.det-grid-side .det-row{padding:9px 12px; font-size:13px;}
.ficha-price{font-size:26px; font-weight:800; color:var(--red); margin-bottom:4px;}
.ficha-ref{font-size:12px; color:var(--ink-soft); margin-bottom:18px;}

.share-row{display:flex; gap:12px; align-items:center; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:14px; margin-top:6px; font-size:12.5px;}
.share-row span{color:var(--ink-soft); font-weight:700;}
.share-row a{color:var(--red); font-weight:700; border-bottom:1px solid var(--red);}
@media (max-width:900px){
  .ficha-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "gal"
      "side"
      "desc";
  }
  .ficha-side{position:static;}
  .ficha-head-price{text-align:left;}
}

@media (max-width:980px){
  .grid-listings{grid-template-columns:repeat(2,1fr);}
  .services-grid{grid-template-columns:repeat(3,1fr);}
  .filters{grid-template-columns:1fr 1fr;}
  .filters .btn-red{grid-column:1/-1;}
  .trayectoria{grid-template-columns:1fr;}
  .trust{grid-template-columns:1fr 1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  nav.desktop-nav{display:none;}
  .menu-toggle{display:flex;}
  .mobile-nav{display:flex;}
  .head-actions .icon-btn{display:none;}
}
@media (max-width:640px){
  .grid-listings{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .filters{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .hero-inner{padding-bottom:70px;}
}

/* ── CONTACTO contacto.php ── */
.contact-grid-c{display:grid; grid-template-columns:1.8fr 1fr; gap:30px; align-items:start;}
.contact-grid-c > *{min-width:0;}
.contact-form-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px;}
.cf-row{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
.cf-field{display:flex; flex-direction:column; gap:6px; margin-bottom:14px;}
.cf-row .cf-field{margin-bottom:0;}
.cf-field label{font-size:13px; font-weight:700; color:var(--ink);}
.cf-field label span{color:var(--red);}
.cf-field input, .cf-field textarea{
  padding:12px 14px; border:1px solid var(--line-input); border-radius:var(--radius-sm);
  font-family:inherit; font-size:13.5px; font-weight:500; color:var(--ink); background:#fff; resize:vertical;
}
.cf-field input:focus, .cf-field textarea:focus{outline:none; border-color:var(--red);}
.cf-submit-wrap{text-align:center; margin-top:6px;}
.cf-submit{padding:13px 40px;}
.contact-error{background:#FBE7E6; color:var(--red-dark); border:1px solid var(--red); border-radius:var(--radius-sm); padding:12px 16px; font-size:13.5px; font-weight:600; margin-bottom:18px;}
.contact-success{text-align:center; padding:40px 10px;}
.contact-success-ic{width:56px; height:56px; border-radius:50%; background:#2E5339; color:#fff; font-size:26px; font-weight:800; display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}
.contact-success h3{font-size:19px; font-weight:800; margin-bottom:8px;}
.contact-success p{color:var(--ink-soft); font-size:14px;}
.contact-line{font-size:13.5px; color:var(--ink-soft); margin-bottom:10px; line-height:1.6;}
.contact-line a{color:var(--red); font-weight:700;}

.contact-mini{padding-top:10px; display:flex; flex-direction:column; gap:16px;}
.cm-row{display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:var(--ink-soft); line-height:1.5;}
.cm-row svg{flex-shrink:0; margin-top:2px; color:var(--red);}
.cm-row a{color:var(--ink); font-weight:700;}
.cm-social{display:flex; gap:10px; margin-top:4px;}
.icon-btn-wa{color:#fff; background:#25D366; border-color:#25D366;}
.icon-btn-wa:hover{background:#1EBE5A; border-color:#1EBE5A;}
@media (max-width:900px){
  .contact-grid-c{grid-template-columns:1fr;}
  .cf-row{grid-template-columns:1fr;}
}

/* ── FOOTER: bloque Ofertar ── */
.foot-ofertar{background:#211F1D; border:1px solid #2E2E2C; border-radius:var(--radius); padding:20px; text-align:center;}
.foot-ofertar-ic{color:var(--red); margin:0 auto 10px; display:flex; justify-content:center;}
.foot-ofertar p{color:#fff; font-weight:800; font-size:14.5px; line-height:1.3; margin-bottom:14px;}
.foot-ofertar .btn{width:100%; justify-content:center;}

/* ── MODAL Ofertar ── */
.ofertar-overlay{position:fixed; inset:0; background:rgba(15,15,15,.55); z-index:200; display:none; align-items:center; justify-content:center; padding:20px;}
.ofertar-overlay.open{display:flex;}
.ofertar-modal{background:#fff; border-radius:var(--radius); padding:28px; width:100%; max-width:440px; max-height:90vh; overflow-y:auto; position:relative;}
.ofertar-close{position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%; border:none; background:var(--bg); color:var(--ink-soft); font-size:14px;}
.ofertar-close:hover{background:var(--line);}
.ofertar-title{font-size:19px; font-weight:800; margin-bottom:18px;}
@media (max-width:980px){
  .foot-ofertar{grid-column:span 2;}
}
@media (max-width:640px){
  .foot-ofertar{grid-column:auto;}
}
