{“@context”:”https://schema.org”,”@type”:”Service”,”name”:”Meta Ads para Imobiliárias”,”provider”:{“@type”:”Organization”,”name”:”Rafa”,”url”:”https://rafa.pt”},”description”:”Gestão profissional de Facebook e Instagram Ads para imobiliárias em Portugal.”,”areaServed”:{“@type”:”Country”,”name”:”Portugal”}} /* === WordPress Full-Page Override === */ .site-content, .entry-content, .post-content, .page-content, .content-area, .site-main, .ast-container, .elementor-section.elementor-section-boxed > .elementor-container, .wp-block-group__inner-container, .alignwide, .alignfull, #content, #primary, #main, article, .hentry { max-width: 100% !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; } body.page, body.page-template-default { overflow-x: hidden !important; } body.page #masthead, body.page .site-header, body.page .ast-header-break-point, body.page #colophon, body.page .site-footer, body.page .ast-footer-overlay, body.page #ast-scroll-top, body.page .elementor-location-header, body.page .elementor-location-footer, body.page .wp-site-blocks > header, body.page .wp-site-blocks > footer { display: none !important; } html { margin-top: 0 !important; } #wpadminbar { position: fixed !important; } /* === End WordPress Override === */ :root { –color-bg-primary: #f5f2ed; –color-bg-secondary: #ffffff; –color-bg-accent: #ebe6dc; –color-bg-header-footer: #1b2440; –color-bg-contact: linear-gradient(to right, #1b2440, #2a3458); –color-bg-card: #ffffff; –color-bg-button-cta: #3fa68a; –color-bg-button-cta-hover: #2e8c72; –color-bg-button-secondary: transparent; –color-bg-button-secondary-hover: rgba(63, 166, 138, 0.1); –color-text-primary: #343a40; –color-text-secondary: #5a6268; –color-text-headings: #1b2440; –color-text-hero: #ffffff; –color-text-header-footer: #ffffff; –color-text-button-cta: #1b2440; –color-text-button-secondary: #3fa68a; –color-text-link: #1b2440; –color-text-highlight: #3fa68a; –color-icon-primary: #3fa68a; –color-border-primary: #e9ecef; –color-border-secondary: #3fa68a; –color-shadow: rgba(0, 0, 0, 0.04); –color-shadow-lg: rgba(0, 0, 0, 0.07); } html.dark { –color-bg-primary: #0e1623; –color-bg-secondary: #16202f; –color-bg-accent: #1f2b3d; –color-bg-header-footer: #0a1119; –color-bg-contact: linear-gradient(to right, #0a1119, #16202f); –color-bg-card: #1a2435; –color-text-primary: #e9ecef; –color-text-secondary: #adb5bd; –color-text-headings: #ebe6dc; –color-text-hero: #f9fafb; –color-text-header-footer: #f9fafb; –color-text-button-cta: #0e1623; –color-text-button-secondary: #3fa68a; –color-text-link: #3fa68a; –color-text-highlight: #3fa68a; –color-border-primary: #343a40; –color-shadow: rgba(0, 0, 0, 0.1); –color-shadow-lg: rgba(0, 0, 0, 0.15); } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: ‘Inter’, sans-serif; background-color: var(–color-bg-primary); color: var(–color-text-primary); transition: background-color 0.3s, color 0.3s; line-height: 1.7; font-weight: 400; overflow-x: hidden; } .container { width: 90%; max-width: 1140px; margin: 0 auto; padding: 0 20px; } h1, h2, h3, h4, h5, h6 { font-family: ‘Inter’, sans-serif; color: var(–color-text-headings); font-weight: 700; letter-spacing: -0.5px; line-height: 1.3; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } p { color: var(–color-text-secondary); margin-bottom: 1.25rem; font-size: clamp(1rem, 0.95rem + 0.21vw, 1.1rem); } strong { color: var(–color-text-highlight); font-weight: 600; } a { color: var(–color-text-link); text-decoration: none; } a:hover { text-decoration: underline; color: var(–color-text-highlight); } /* Header */ .main-header { position: sticky; top: 0; z-index: 1000; background-color: var(–color-bg-header-footer); color: var(–color-text-header-footer); transition: background-color 0.3s, color 0.3s, box-shadow 0.3s; box-shadow: 0 2px 10px rgba(0,0,0,0.1); padding: 1rem 0; } .header-content { display: flex; justify-content: space-between; align-items: center; } .logo { font-size: 1.6em; font-weight: 700; color: var(–color-text-header-footer); text-decoration: none; } .logo:hover { text-decoration: none; color: var(–color-text-header-footer); } .logo i { margin-right: 8px; color: var(–color-bg-button-cta); } .main-nav { display: flex; gap: 2.5rem; } .main-nav a { color: var(–color-text-header-footer); text-decoration: none; font-weight: 500; transition: color 0.3s; font-size: 1rem; } .main-nav a:hover { color: var(–color-bg-button-cta); text-decoration: none; } .header-actions { display: flex; align-items: center; gap: 1rem; } .btn { font-weight: 600; padding: 0.45rem 1rem; border-radius: 50px; text-decoration: none; transition: all 0.3s; border: none; cursor: pointer; display: flex; align-items: center; gap: 0.4rem; font-size: 0.85rem; } .btn-primary { background-color: var(–color-bg-button-cta); color: var(–color-text-button-cta); } .btn-primary:hover { background-color: var(–color-bg-button-cta-hover); text-decoration: none; color: var(–color-text-button-cta); } .btn-secondary { background-color: var(–color-bg-button-secondary); color: var(–color-text-button-secondary); border: 2px solid var(–color-border-secondary); } .btn-secondary:hover { background-color: var(–color-bg-button-secondary-hover); text-decoration: none; } .theme-toggle-button { background: none; border: 1px solid var(–color-text-header-footer); color: var(–color-text-header-footer); padding: 0.6rem; width: 45px; height: 40px; justify-content: center; font-weight: 700; border-radius: 50px; } .theme-toggle-button .fa-sun { display: block; } .theme-toggle-button .fa-moon { display: none; } html.dark .theme-toggle-button .fa-sun { display: none; } html.dark .theme-toggle-button .fa-moon { display: block; } /* Hero */ .hero-section { position: relative; display: flex; align-items: center; justify-content: center; padding: 6rem 0; min-height: 90vh; color: var(–color-text-hero); text-align: center; background: url(‘https://rafa.pt/wp-content/uploads/2026/06/hero-home-imobiliario.jpg’) no-repeat center center/cover; overflow: hidden; } .hero-section::before { content: ”; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(27, 36, 64, 0.7); z-index: 1; } .hero-content { position: relative; z-index: 2; } .hero-title { font-size: clamp(3rem, 2rem + 4.5vw, 5rem); font-weight: 900; line-height: 1.2; margin-bottom: 1.5rem; color: var(–color-text-hero); letter-spacing: -1.5px; } .hero-subtitle { font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); margin-bottom: 2.5rem; color: var(–color-text-hero); opacity: 0.95; max-width: 700px; margin-left: auto; margin-right: auto; } .hero-stats { display: flex; justify-content: center; align-items: center; gap: 2rem; margin: 2.5rem 0; flex-wrap: wrap; } .stat-item { text-align: center; padding: 0 1.5rem; position: relative; } .stat-item:not(:last-child)::after { content: ”; position: absolute; right: -1rem; top: 50%; transform: translateY(-50%); width: 2px; height: 50px; background-color: rgba(255, 255, 255, 0.2); } .stat-value { display: block; font-size: clamp(2.5rem, 1.5rem + 4vw, 3.5rem); font-weight: 900; color: var(–color-bg-button-cta); line-height: 1.1; } .stat-label { display: block; font-size: clamp(0.9rem, 0.8rem + 0.43vw, 1.1rem); color: var(–color-text-hero); opacity: 0.9; margin-top: 0.25rem; } .cta-button { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; background-color: var(–color-bg-button-cta); color: var(–color-text-button-cta); font-weight: bold; padding: 0.9rem 2.2rem; border-radius: 50px; text-decoration: none; transition: all 0.3s; border: none; cursor: pointer; font-size: 1.1rem; } .cta-button:hover { background-color: var(–color-bg-button-cta-hover); text-decoration: none; color: var(–color-text-button-cta); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(63,166,138,0.35); } .cta-microcopy { font-size: 1rem; margin-top: 1.25rem; color: var(–color-text-hero); opacity: 0.8; } #hero-trust-bar { position: absolute; bottom: 0; left: 0; width: 100%; z-index: 2; background-color: rgba(0, 0, 0, 0.2); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); border-top: 1px solid rgba(255, 255, 255, 0.2); } .trust-bar-container { padding: 1.5rem 0; overflow: hidden; width: 100%; } .trust-bar-track { display: flex; gap: 3.5rem; animation: scroll-left 40s linear infinite; width: fit-content; padding-right: 3.5rem; } @keyframes scroll-left { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } .trust-item { display: flex; align-items: center; gap: 0.75rem; font-weight: 600; color: var(–color-text-hero); font-size: clamp(0.9rem, 0.8rem + 0.43vw, 1rem); flex-shrink: 0; white-space: nowrap; } .trust-item i { color: var(–color-text-hero); font-size: clamp(1.6rem, 1.3rem + 0.5vw, 2rem); flex-shrink: 0; } /* Sections */ .section { padding: 6rem 0; } .section-icon { display: block; text-align: center; color: var(–color-icon-primary); font-size: 3.5rem; margin-bottom: 1rem; } .section-title { font-size: clamp(2.2rem, 1.6rem + 2.56vw, 2.8rem); text-align: center; margin-bottom: 1.5rem; font-weight: 700; } .section-subtitle { font-size: clamp(1.05rem, 0.95rem + 0.43vw, 1.2rem); text-align: center; max-width: 750px; margin: 0 auto 4rem auto; color: var(–color-text-secondary); } main#main-content > .section:nth-of-type(even) { background-color: var(–color-bg-accent); } /* Grid */ .grid { display: grid; gap: 2.5rem; } .grid-cols-2 { grid-template-columns: repeat(2, 1fr); } .grid-cols-3 { grid-template-columns: repeat(3, 1fr); } /* Cards */ .card { background-color: var(–color-bg-card); border-radius: 16px; padding: 2.5rem; box-shadow: 0 4px 15px var(–color-shadow); text-align: center; transition: transform 0.3s, box-shadow 0.3s; } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 30px var(–color-shadow-lg); } .card-icon { font-size: 3rem; color: var(–color-icon-primary); margin-bottom: 1.5rem; display: block; } /* Process Cards */ .process-card { display: flex; align-items: flex-start; gap: 1.5rem; padding: 2rem; background-color: var(–color-bg-card); border-radius: 16px; box-shadow: 0 4px 15px var(–color-shadow); text-align: left; } .process-number { min-width: 50px; height: 50px; border-radius: 50%; background-color: var(–color-bg-button-cta); color: var(–color-text-button-cta); display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 1.3rem; flex-shrink: 0; } .process-content h3 { margin-bottom: 0.5rem; } /* Comparison Cards */ .comparison-card { padding: 2.5rem; border-radius: 16px; } .comparison-card ul { list-style: none; padding: 0; text-align: left; } .comparison-card li { padding: 0.75rem 0; display: flex; align-items: flex-start; gap: 0.75rem; color: var(–color-text-secondary); border-bottom: 1px solid var(–color-border-primary); } .comparison-card li:last-child { border-bottom: none; } .comparison-card li i { margin-top: 4px; flex-shrink: 0; } .sem-rafa { background-color: var(–color-bg-card); border: 2px solid #dc354520; box-shadow: 0 4px 15px var(–color-shadow); } .sem-rafa h3 { color: #dc3545; } .sem-rafa li i { color: #dc3545; } .com-rafa { background-color: var(–color-bg-card); border: 2px solid var(–color-border-secondary); box-shadow: 0 4px 15px var(–color-shadow); } .com-rafa h3 { color: var(–color-icon-primary); } .com-rafa li i { color: #28a745; } /* Case Study */ .case-study-card { background: var(–color-bg-card); border-radius: 16px; padding: 2.5rem; box-shadow: 0 4px 15px var(–color-shadow); text-align: left; } .case-study-badge { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(63,166,138,0.1); border: 1px solid rgba(63,166,138,0.3); padding: 0.3rem 1rem; border-radius: 50px; font-size: 0.85rem; font-weight: 600; color: var(–color-icon-primary); margin-bottom: 1rem; } .case-study-title { font-size: 1.3rem; margin-bottom: 0.5rem; } .case-study-subtitle { color: var(–color-text-secondary); margin-bottom: 1.5rem; } .case-study-metrics { display: flex; gap: 2rem; margin-bottom: 1.5rem; flex-wrap: wrap; } .case-study-metric { text-align: center; } .case-study-metric-value { font-size: 1.8rem; font-weight: 900; color: var(–color-text-headings); } .case-study-metric-label { font-size: 0.8rem; color: var(–color-text-secondary); text-transform: uppercase; letter-spacing: 0.5px; } .case-study-highlight { background: var(–color-bg-accent); border-left: 4px solid var(–color-icon-primary); padding: 1rem 1.5rem; border-radius: 0 8px 8px 0; margin-bottom: 1rem; } .case-study-highlight-text { margin: 0; font-style: italic; } .case-study-services { display: flex; gap: 0.5rem; flex-wrap: wrap; } .case-study-service-tag { background: var(–color-bg-accent); padding: 0.25rem 0.75rem; border-radius: 50px; font-size: 0.8rem; color: var(–color-text-secondary); } /* FAQ */ .faq-container { max-width: 800px; margin: 0 auto; } .faq-question { font-size: 1.2rem; font-weight: 600; cursor: pointer; transition: color 0.2s; position: relative; padding: 1.5rem 3rem 1.5rem 1rem; border-bottom: 1px solid var(–color-border-primary); } .faq-question:hover { color: var(–color-text-link); } .faq-question i { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); font-size: 1rem; color: var(–color-text-secondary); transition: transform 0.3s ease; } .faq-question.open i { transform: translateY(-50%) rotate(180deg); } .faq-answer { color: var(–color-text-secondary); line-height: 1.7; padding: 0 1rem; transition: max-height 0.4s ease-in-out; overflow: hidden; max-height: 0; } .faq-answer p { padding: 1.5rem 0; font-size: 1.05rem; } /* Contact */ .contact-section { background: var(–color-bg-contact); color: var(–color-text-hero); padding: 6rem 0; } .contact-section h2, .contact-section p { color: var(–color-text-hero); } .contact-section .section-subtitle { color: var(–color-text-hero); opacity: 0.9; } .contact-form { max-width: 600px; margin: 2rem auto 0; display: flex; flex-direction: column; gap: 1.25rem; text-align: left; } .form-group input, .form-group textarea { width: 100%; padding: 1rem; border-radius: 8px; border: 1px solid var(–color-border-primary); background-color: var(–color-bg-secondary); color: var(–color-text-primary); font-family: ‘Inter’, sans-serif; font-size: 1rem; } .form-group input::placeholder, .form-group textarea::placeholder { color: var(–color-text-secondary); } .form-group textarea { resize: vertical; min-height: 120px; } .rgpd-label { font-size: 0.85rem; line-height: 1.5; color: var(–color-text-hero); opacity: 0.9; } .rgpd-label a { color: var(–color-bg-button-cta); text-decoration: underline; } .confirmation-message { text-align: center; padding: 3rem 2rem; background: var(–color-bg-card); border-radius: 16px; box-shadow: 0 10px 40px var(–color-shadow-lg); } .confirmation-message i { font-size: 3rem; color: #28a745; margin-bottom: 1rem; display: block; } .confirmation-message h4 { font-size: 1.5rem; margin-bottom: 0.75rem; } /* Footer */ .footer { background-color: var(–color-bg-header-footer); color: var(–color-text-header-footer); padding: 3.5rem 0; text-align: center; } .footer p { color: var(–color-text-header-footer); opacity: 0.8; } .footer a { color: var(–color-text-header-footer); text-decoration: none; transition: color 0.3s; } .footer a:hover { color: var(–color-bg-button-cta); text-decoration: none; } /* Bottom Nav */ .bottom-nav { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 1000; background-color: var(–color-bg-header-footer); border-top: 1px solid rgba(255,255,255,0.1); justify-content: space-around; align-items: stretch; height: 68px; box-shadow: 0 -4px 20px rgba(0,0,0,0.25); padding: 0; padding-bottom: env(safe-area-inset-bottom, 0px); } .bottom-nav-item { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 1; color: rgba(255,255,255,0.6); text-decoration: none; font-size: 0.65rem; font-weight: 500; letter-spacing: 0.3px; gap: 4px; transition: all 0.2s ease; position: relative; padding: 8px 0; cursor: pointer; background: none; border: none; font-family: ‘Inter’, sans-serif; } .bottom-nav-item i { font-size: 1.2rem; transition: all 0.2s ease; } .bottom-nav-item:hover, .bottom-nav-item:active { color: var(–color-bg-button-cta); text-decoration: none; } .bottom-nav-phone { position: relative; } .bottom-nav-phone i { font-size: 1.55rem; background: var(–color-bg-button-cta); color: var(–color-text-button-cta); width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-top: -22px; box-shadow: 0 4px 15px rgba(63, 166, 138, 0.4); transition: all 0.2s ease; } .bottom-nav-phone span { margin-top: 2px; } .bottom-nav-whatsapp i { color: #25D366; font-size: 1.3rem; } /* Cookie Banner */ .cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999; background: var(–color-bg-header-footer); border-top: 1px solid rgba(255,255,255,0.1); padding: 0.6rem 1rem; display: none; align-items: center; justify-content: center; gap: 0.75rem; box-shadow: 0 -2px 10px rgba(0,0,0,0.15); } .cookie-banner.visible { display: flex; flex-wrap: wrap; } .cookie-banner-text { font-size: 0.78rem; color: rgba(255,255,255,0.85); line-height: 1.3; } .cookie-banner-text a { color: var(–color-bg-button-cta); font-weight: 600; text-decoration: underline; } .cookie-banner-actions { display: flex; gap: 0.4rem; flex-shrink: 0; } .cookie-btn { padding: 0.3rem 0.7rem; border-radius: 5px; font-size: 0.7rem; font-weight: 700; cursor: pointer; border: none; transition: all 0.2s; font-family: ‘Inter’, sans-serif; } .cookie-btn-accept { background: var(–color-bg-button-cta); color: var(–color-text-button-cta); } .cookie-btn-accept:hover { background: var(–color-bg-button-cta-hover); } .cookie-btn-reject { background: transparent; color: rgba(255,255,255,0.6); border: 1px solid rgba(255,255,255,0.2); } .cookie-btn-reject:hover { background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.8); } @media (max-width: 991px) { .cookie-banner { bottom: 68px; } } @media (max-width: 500px) { .cookie-banner { justify-content: center; text-align: center; gap: 0.5rem; } } /* Reveal */ .reveal { opacity: 1; transform: translateY(0); transition: opacity 0.8s, transform 0.8s; } .js-loaded .reveal:not(.visible) { opacity: 0; transform: translateY(30px); } .reveal.visible { opacity: 1; transform: translateY(0); } /* Skip Link */ .skip-link { position: absolute; top: -100px; left: 50%; transform: translateX(-50%); background: var(–color-bg-button-cta); color: var(–color-text-button-cta); padding: 0.75rem 1.5rem; border-radius: 0 0 8px 8px; z-index: 10000; font-weight: 600; } .skip-link:focus { top: 0; } @media (max-width: 991px) { .bottom-nav { display: flex; } body { padding-bottom: 68px; } .footer { padding-bottom: 4.5rem; } .main-nav { display: none; } .stat-item:not(:last-child)::after { display: none; } } @media (max-width: 767px) { .section { padding: 4.5rem 0; } .grid-cols-2, .grid-cols-3 { grid-template-columns: 1fr; } .logo { font-size: 1.2em; } .header-actions { gap: 0.5rem; } .header-actions .btn { padding: 0.4rem 0.8rem; font-size: 0.9rem; } .header-actions .btn-primary { display: none; } .header-actions .btn-secondary { display: none; } .main-nav { display: none !important; } .theme-toggle-button { width: 38px; height: 32px; } .hero-section { min-height: 70vh; padding: 4rem 0 5rem; } .hero-title { font-size: clamp(2rem, 1.5rem + 3vw, 3rem); } .case-study-metrics { gap: 1rem; } .process-card { flex-direction: column; text-align: center; align-items: center; } .cookie-banner { flex-direction: column; text-align: center; border-radius: 16px 16px 0 0; bottom: 68px; } .cookie-banner.visible { bottom: 68px; } } .footer-link { color: rgba(255,255,255,0.7); text-decoration: none; font-size: 0.9rem; transition: color 0.2s; } .footer-link:hover { color: var(–color-bg-button-cta); } .cases-carousel { display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding: 1rem 0 2rem; scrollbar-width: thin; scrollbar-color: var(–color-bg-button-cta) transparent; } .cases-carousel::-webkit-scrollbar { height: 6px; } .cases-carousel::-webkit-scrollbar-track { background: transparent; } .cases-carousel::-webkit-scrollbar-thumb { background: var(–color-bg-button-cta); border-radius: 3px; } .case-study-card { background: var(–color-bg-card); border-radius: 16px; padding: 2rem; border: 1px solid var(–color-border-primary); box-shadow: 0 4px 20px var(–color-shadow); transition: all .3s; position: relative; overflow: hidden; min-width: 340px; max-width: 380px; flex-shrink: 0; scroll-snap-align: start; } .case-study-card:hover { box-shadow: 0 10px 30px var(–color-shadow-lg); transform: translateY(-6px); } .case-study-badge { display: inline-flex; align-items: center; gap: .4rem; background: rgba(63,166,138,0.12); color: var(–color-bg-button-cta); font-size: .75rem; font-weight: 700; padding: .35rem .8rem; border-radius: 20px; margin-bottom: 1rem; text-transform: uppercase; letter-spacing: .5px; } .case-study-title { font-size: 1.15rem; font-weight: 800; color: var(–color-text-headings); margin-bottom: .5rem; } .case-study-subtitle { font-size: .9rem; color: var(–color-text-secondary); margin-bottom: 1.25rem; line-height: 1.5; } .case-study-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin-bottom: 1.25rem; } .case-study-metric { background: var(–color-bg-accent); border-radius: 10px; padding: .75rem; text-align: center; } .case-study-metric-value { font-size: 1.5rem; font-weight: 900; color: var(–color-bg-button-cta); line-height: 1.2; } .case-study-metric-label { font-size: .72rem; color: var(–color-text-secondary); margin-top: .2rem; text-transform: uppercase; letter-spacing: .3px; } .case-study-highlight { background: linear-gradient(135deg, rgba(63,166,138,0.08), rgba(63,166,138,0.03)); border: 1px solid rgba(63,166,138,0.2); border-radius: 10px; padding: .75rem 1rem; text-align: center; } .case-study-highlight-text { font-size: .85rem; color: var(–color-text-primary); font-weight: 600; } .case-study-highlight-text strong { color: var(–color-bg-button-cta); } .case-study-services { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; } .case-study-service-tag { font-size: .7rem; padding: .25rem .6rem; border-radius: 12px; background: var(–color-bg-accent); color: var(–color-text-secondary); font-weight: 600; }

Meta Ads
para Imobiliárias

€1.50CPL desde
+150Leads por Mês
3xMais Alcance

90% do resultado em Meta Ads vem do criativo, não do técnico. Aplicamos o framework Ângulo·Enfoque·Molde para gerar anúncios que convertem em série. CPL 3-10× inferior aos portais imobiliários, sem depender de sorte.

Auditoria Grátis 45 min

3 auditorias por semana · resposta em 24h · sem compromisso

Google Partner
Meta Business Partner
TikTok Partner
+10 Anos de Experiência
+17 Imobiliárias Apoiadas
Avaliação de 4.9★
Google Partner
Meta Business Partner
TikTok Partner
+10 Anos de Experiência
+17 Imobiliárias Apoiadas
Avaliação de 4.9★

O Alcance Orgânico no Facebook Morreu

Publicar fotos de imóveis no Facebook e esperar que apareçam clientes já não funciona. O alcance orgânico médio de uma página é inferior a 2%. Sem investimento em anúncios, as suas publicações são invisíveis.

Menos de 2% de Alcance

Se a sua página tem 1.000 seguidores, apenas 20 pessoas veem as suas publicações. O Facebook quer que pague para alcançar a sua própria audiência.

2.4 Mil Milhões de Utilizadores

O Facebook e Instagram têm a maior base de utilizadores do mundo. O seu próximo comprador está lá — mas precisa de anúncios para o alcançar eficazmente.

Segmentação Poderosa

Nenhuma outra plataforma permite segmentar por localização, idade, interesses em imóveis, comportamento de compra e até pelo tipo de imóvel que procuram.

Onde Está Realmente o Resultado do Meta Ads

A maioria das mediadoras perde dinheiro em Meta Ads a optimizar o que não move a agulha. Auditámos mais de 40 contas em Portugal e o padrão repete-se: setup técnico impecável, criativos preguiçosos.

90%

É o Criativo

Nove em cada dez euros de resultado vêm do anúncio em si — imagem, vídeo, texto, hook. O que a maioria dos consultores otimiza (estruturas, atribuição, dayparting) é 10% do jogo.

80%

São os Primeiros 10 Seg

Dentro do próprio anúncio, oitenta por cento do resultado vem do hook — a primeira frase, imagem ou cena. O resto do corpo do anúncio pesa apenas 20% no que faz o utilizador clicar.

Consequência operacional: se o teu gestor de tráfego passa horas a mexer em janelas de atribuição mas os teus anúncios são “queres vender a tua casa?”, está a optimizar 10% enquanto ignora 90%. Podes ter o melhor a nível técnico do país — se os criativos são medíocres, quem tiver hooks melhores passa-te por cima.

Como Criamos Anúncios Que Convertem em Série

O nosso método assenta em três camadas independentes. Com apenas um ângulo forte conseguimos gerar dezenas de anúncios que testam variantes até encontrar o vencedor — sem ficarmos sem ideias ao fim de duas semanas.

1. Ângulo

A perspectiva pela qual abordamos a dor real do cliente. Não é “queres vender a tua casa?” — é “estás preso a esta casa há 8 meses e o vizinho já vendeu duas”. Ângulo forte revela conhecimento profundo do cliente.

Ex: mesmo problema (vender casa) pode ter ângulos de tempo perdido, comparação social, dinheiro parado, pressão familiar, medo de errar preço.

2. Enfoque

A forma como abordamos o ângulo. Um ângulo forte gera 3-5 enfoques distintos: polémico (posicionar contra o sector), estatístico (dado + reversão), autoridade (quem valida), metafórico (comparação inesperada).

Ex: mesmo ângulo “dinheiro parado” com enfoque estatístico (“cada mês parado custa 800€”) ou polémico (“as mediadoras vivem do teu tempo”).

3. Molde

Como envolvemos o ângulo + enfoque num formato. Antes/depois, pergunta estilo Instagram Story, podcast/entrevista, screenshot bloc notas, depoimento cliente, dashboard, meme. Cada molde funciona para audiências diferentes.

Ex: um único ângulo vencedor × 3 enfoques × 5 moldes = 15 anúncios prontos a testar sem sair do que funciona.

A Regra Prática

Se o teu ângulo pode ser escrito por qualquer copywriter em 2 minutos, é raso. Se te for perguntado numa conversa “porquê este anúncio?” e a resposta for “para captar leads”, o ângulo não existe. Um ângulo real revela algo que a concorrência ainda não sabe ou não diz. É aí que estão os clientes que ninguém consegue converter.

Exemplos de Ângulos Reais Para o Teu Perfil

Trabalhamos com três perfis distintos em Portugal. Cada um tem dores emocionais e sociais diferentes. Aqui estão exemplos crus de ângulos que usamos — a comparação com o que a concorrência publica revela porque conseguimos CPLs 3-10× inferiores.

Mediadoras & Consultores

❌ Ângulo raso

“Precisas de mais leads? Contacta-nos.”

✅ Ângulo cru

  • “Angarias 8 imóveis, fechas 2, e os outros 6 roubam-te € 25/hora em visitas.”
  • “O consultor novo da concorrência está a bater-te em bairros que trabalhaste 4 anos.”
  • “Os teus filhos crescem enquanto tu andas em visitas que sabes que não vão fechar.”

Promotores & Construtoras

❌ Ângulo raso

“Descubra o nosso novo empreendimento.”

✅ Ângulo cru

  • “Tens 8 fracções por vender e a tranche C do banco pede 5 promessas até Setembro.”
  • “O empreendimento em frente ao teu já vendeu 60% em pré-marketing. Não foi sorte.”
  • “Os teus sócios começaram a olhar para o Excel de outra forma nas últimas semanas.”

Particulares DIY

❌ Ângulo raso

“Vende a tua casa sem mediadora.”

✅ Ângulo cru

  • “Vais pagar € 15.000-40.000 só para uma mediadora publicar as tuas fotos no Idealista.”
  • “3 semanas de fotos com telemóvel à hora errada podem custar-te € 30.000.”
  • “Estás a pedir € 260k porque acham “que é mais rápido” — mas ninguém sabe o preço real.”
Ver como fazemos isto para o teu negócio

Se o Teu Gestor de Meta Ads Faz Isto, Vais Perder Dinheiro

Estes são os 6 sinais que aparecem em quase todas as auditorias que fizemos a mediadoras e promotores portugueses. Se identificares 3 ou mais, o problema não é o mercado — é o método.

Anúncios de identificação básica

“Queres vender a tua casa?” ou “Precisas de mais leads?” — se qualquer copywriter escreve isto em 2 minutos, o algoritmo Meta também não vai encontrar o cliente ideal a preço barato.

Um ou dois anúncios activos

Um único ângulo vencedor gera 10-15 anúncios. Se só tens 1-2 em rotação, o CPL sobe 40-60% em 3 meses por fadiga criativa e não há budget que compense.

Copy traduzida de blogs americanos

Expressões traduzidas literalmente do inglês (“reduza o CAC”) não conectam. As dores no imobiliário PT são culturais: pressão familiar, expectativa dos sogros, comparação com o vizinho.

Corpo 30 min, hook 3 min

A ordem correcta é inversa. Redigir 2 corpos independentes (funcionam com qualquer hook) e depois investir tempo em testar 5-15 hooks diferentes. Quem faz o contrário fica preso em CPL € 8-15.

Escalar anúncios em vez de ângulos

Quando um anúncio funciona, o instinto errado é subir-lhe o budget até morrer. O correcto é criar 10 novas variações do ÂNGULO vencedor (enfoques e moldes diferentes) para escalar sem fadiga.

“Aproveita já” sem escassez real

Escassez inventada queima confiança. Se dizes “última semana” há 3 meses, o utilizador nota. Escassez real vem de contexto: IMT Jovem tecto € 330.539, lote 6 moradias, janela fiscal Dezembro.

Auditoria gratuita da tua conta Meta Ads

Aceitamos apenas 3 auditorias por semana. Em 45 minutos identificamos os pontos de fuga da tua conta actual (ângulos, criativos, estrutura) e mostramos o que faríamos diferente no primeiro mês.

Agendar Auditoria Grátis

Auditoria Meta Ads · 45 min · Zero Custo

Descobre em 45 min onde estás a perder dinheiro

Se estás a gerir Meta Ads sozinho ou com um consultor cujos anúncios não funcionam há meses — vale a pena uma segunda opinião. Em 45 min, uma call com screen-share:

Análise das tuas campanhas

Vemos juntos ao vivo os anúncios activos, CPL, CTR, estrutura de conjuntos e pontos de fuga.

Ângulos por explorar

Identificamos 3-5 ângulos crus que o teu ICP não está a receber e onde estão os leads mais baratos.

Plano escrito de 90 dias

Recebes documento com criativos a produzir, estrutura de campanha e KPIs a acompanhar. Aplicas com ou sem nós.

Zero compromisso. Zero cartão pedido. Se depois da call não fizer sentido trabalhares connosco, ficas com o plano na mesma e aplicas por conta própria.

Agendar Auditoria Grátis

Apenas 3 vagas de auditoria por semana · resposta em 24h

Os Nossos Serviços de Meta Ads

Campanhas de Facebook e Instagram desenhadas para gerar contactos reais para a sua imobiliária.

Campanhas de Leads

Lead Ads nativos que permitem ao utilizador enviar os seus dados sem sair do Facebook. Taxa de conversão até 3x superior a landing pages tradicionais.

Catálogo Dinâmico

Mostramos o seu stock atualizado automaticamente nos anúncios. Cada utilizador vê as imóveis mais relevantes para si com foto, preço e modelo.

Remarketing & Retargeting

Quem visitou o seu site ou interagiu com a sua página volta a ver os seus anúncios. Seguimos potenciais compradores até converteram em leads.

Anúncios em Stories & Reels

Vídeos e imagens envolventes nos formatos que mais captam atenção. Stories e Reels têm taxas de engagement até 5x superiores ao feed.

Segmentação Advantage+

Usamos a IA da Meta para encontrar automaticamente os compradores mais prováveis na sua zona. Menos desperdício, mais leads qualificados.

A/B Testing & Otimização

Testamos diferentes criativos, textos e audiências continuamente. Cada euro investido é otimizado para gerar o máximo de contactos ao menor custo.

O Nosso Processo

Três fases claras, do primeiro contacto à escala. Cada fase tem KPIs próprios e checkpoints escritos para saberes exactamente onde estamos.

1. Estratégia & Setup

Definimos audiências, ângulos por perfil de ICP e criativos base. Instalamos Pixel Meta, configuramos conversões e preparamos catálogo de imóveis. Duração: 5-7 dias.

2. Lançamento & Testes

Publicamos 10-15 anúncios por ângulo vencedor testando enfoques e moldes. O algoritmo Meta identifica combinações que convertem. Duração: 14-21 dias.

3. Otimização & Escala

Cortamos criativos fracos, escalamos ângulos vencedores com novas variações e reduzimos o CPL progressivamente. Relatório mensal com KPIs. Contínuo.

Casos Reais e Arquétipos de Trabalho

Cinco casos reais (2022-2025) e um arquétipo internacional de imobiliárias portuguesas que apoiamos. Por confidencialidade, não identificamos clientes — todos os números são auditáveis pelos próprios clientes a pedido.

#casos-de-sucesso .case-study-card-featured { border: 2px solid var(–color-text-highlight); box-shadow: 0 10px 30px rgba(63,166,138,0.15); } #casos-de-sucesso .case-study-card-featured .case-study-badge { background: var(–color-text-highlight); color: #fff; }

Meta Ads Sem Estratégia vs Com a Rafa

A diferença entre gastar dinheiro e investir com retorno.

Meta Ads Sem Estratégia

  • Boost de publicações sem objetivo claro
  • Audiência demasiado ampla ou irrelevante
  • Criativos amadores que não convertem
  • Sem Pixel instalado nem tracking
  • Sem remarketing — cada visitante é perdido
  • Sem análise de resultados

Meta Ads Com a Rafa

  • Campanhas com objetivo de leads otimizado
  • Segmentação Advantage+ para compradores reais
  • Criativos profissionais testados em A/B
  • Pixel configurado com eventos de conversão
  • Remarketing que recupera visitantes
  • Relatórios mensais com CPL e ROI

Ebook Gratuito · 60 páginas · PDF

Ebook Grátis · Marketing Imobiliário

Framework 3+3+3 para vender qualquer imóvel em Portugal em <90 dias. Dados INE + Idealista 2026, IMT Jovem € 330.539, playbooks para mediadora, promotor e particular.

  • 14 capítulos accionáveis + 25 checklists
  • Sprint 90 dias semana-a-semana
  • Bónus: como usar ChatGPT/Claude como consultor
Descarregar Grátis

Envio imediato · Zero spam

Perguntas Frequentes sobre Meta Ads

Antes de criar campanha Meta Ads, garante que tens o tracking correcto: Meta Pixel e Conversion API para Imobiliária: Setup Completo — necessário para optimização decente em 2026 com iOS 17+.

Respostas às dúvidas mais comuns sobre Facebook e Instagram Ads para imobiliárias.

Quanto devo investir em Meta Ads?

Recomendamos um mínimo de €10/dia (€300/mês) para começar. Com este valor, conseguimos testar audiências e criativos. Imobiliárias com maior stock ou zonas mais competitivas beneficiam de orçamentos superiores.

Facebook Ads ainda funciona em 2026?

Absolutamente. O Facebook e Instagram continuam a ser as plataformas com melhor custo por lead para o setor imobiliário em Portugal. A chave é usar as ferramentas certas: Lead Ads, catálogos dinâmicos e Advantage+.

Qual a diferença entre boost de post e uma campanha profissional?

Um boost é como atirar dinheiro ao ar. Uma campanha profissional tem objetivo definido (leads), audiência segmentada, criativos testados e otimização contínua. A diferença no resultado é brutal — até 10x mais leads pelo mesmo orçamento.

Preciso de ter conteúdo profissional para os anúncios?

Ajuda, mas não é obrigatório no início. Nós criamos os criativos (imagens e vídeos) para os anúncios com base no seu stock. Fotos do telemóvel podem funcionar se forem bem editadas e com o copy certo.

Meta Ads ou Google Ads — qual escolho?

São complementares. Meta Ads é ideal para gerar interesse e alcançar novos compradores. Google Ads capta quem já está a pesquisar ativamente. Juntos, cobrem todo o funil de vendas.

Como funciona o catálogo dinâmico?

Sincronizamos o seu stock com a plataforma Meta. Os anúncios mostram automaticamente as imóveis disponíveis com foto, preço e modelo. Quando vende um imóvel, o anúncio atualiza-se sozinho. É a forma mais eficiente de promover o seu inventário.

Porque é que os meus anúncios funcionam 3 semanas e depois o CPL sobe?

Fadiga criativa. O Meta Ads mostra o mesmo anúncio à mesma audiência até esgotar. Se só tens 1-2 anúncios activos por conjunto, o CPL sobe 40-60% em 3 meses e não há budget que compense. A nossa metodologia produz 10-15 variações por ângulo (novos enfoques + moldes) para que o algoritmo tenha sempre criativos frescos a rodar — o CPL mantém-se estável durante 6-12 meses.

Já paguei 3 gestores de tráfego e nenhum funcionou. Porquê?

Provavelmente porque todos concentraram esforço nos 10% (estruturas, segmentação, janelas de atribuição) e ignoraram os 90% (criativos + ângulos). A maioria dos gestores de tráfego em Portugal é forte no técnico mas fraca em copy — porque não faz research verbatim de dores reais nem sabe distinguir ângulo de identificação. Auditamos gratuitamente a tua conta actual e mostramos onde estão os pontos de fuga em 45 minutos.

Como sei se um ângulo é bom antes de investir €500 no teste?

Três critérios. Primeiro: consegues explicar o ângulo em 8 palavras? Se não, é confuso. Segundo: revela algo que a concorrência ainda não sabe/diz? Se não, é média. Terceiro: um leigo consegue verbalizar a dor depois de o ler? Se não, é abstracto. Na prática arrancamos sempre com €50/dia por conjunto durante 5-7 dias — o algoritmo Meta dá sinais claros com €150-300 investidos. A partir daí decidimos escalar ou substituir.

Agenda a tua Auditoria Grátis

45 minutos em videochamada. Analisamos a tua conta actual, identificamos ângulos por explorar e entregamos um plano escrito de 90 dias — mesmo que decidas não trabalhar connosco.

Análise da tua conta

Screen-share ao vivo dos anúncios activos

3-5 ângulos por explorar

Onde estão os leads mais baratos do teu ICP

Plano escrito 90 dias

Aplicas com ou sem nós — fica teu

Sem cartão. Sem trial. Sem compromisso. Se não fizer sentido trabalhares connosco, ficas com o plano na mesma.

4.9/5 · +17 mediadoras apoiadas
Apenas 3 auditorias por semana Resposta em 24h úteis

Recebemos o teu pedido de auditoria!

Vamos analisar a tua conta antes da call e enviar-te o link de agendamento nas próximas 24h úteis. Enquanto isso, se preferires WhatsApp: clica aqui.

document.addEventListener(‘DOMContentLoaded’, function() { document.documentElement.classList.add(‘js-loaded’); var themeToggleButton = document.getElementById(‘theme-toggle’); if (themeToggleButton) { var prefersDarkScheme = window.matchMedia(“(prefers-color-scheme: dark)”); var savedTheme = localStorage.getItem(‘theme’); if (!savedTheme) { if (prefersDarkScheme.matches) { savedTheme = ‘dark’; } else { savedTheme = ‘light’; } } document.documentElement.classList.toggle(‘dark’, savedTheme === ‘dark’); themeToggleButton.addEventListener(‘click’, function() { var isDark = document.documentElement.classList.contains(‘dark’); var newTheme = ‘light’; if (!isDark) { newTheme = ‘dark’; } localStorage.setItem(‘theme’, newTheme); document.documentElement.classList.toggle(‘dark’, newTheme === ‘dark’); }); } document.querySelectorAll(‘.faq-question’).forEach(function(item) { item.addEventListener(‘click’, function() { var answer = item.nextElementSibling; var wasOpen = item.classList.contains(‘open’); document.querySelectorAll(‘.faq-question’).forEach(function(q) { q.classList.remove(‘open’); q.nextElementSibling.style.maxHeight = null; }); if (!wasOpen) { item.classList.add(‘open’); answer.style.maxHeight = answer.scrollHeight + “px”; } }); }); var revealElements = document.querySelectorAll(‘.reveal’); var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add(‘visible’); observer.unobserve(entry.target); } }); }, { threshold: 0.1 }); revealElements.forEach(function(el) { observer.observe(el); }); var contactForm = document.getElementById(‘service-contact-form’); if (contactForm) { var confirmationEl = document.getElementById(‘service-form-confirmation’); contactForm.addEventListener(‘submit’, function(e) { e.preventDefault(); var formData = new FormData(contactForm); var submitButton = contactForm.querySelector(‘button[type=”submit”]’); var originalText = submitButton.innerHTML; submitButton.innerHTML = ‘A enviar…’; submitButton.disabled = true; fetch(contactForm.action, { method: ‘POST’, body: formData, headers: { ‘Accept’: ‘application/json’ } }) .then(function(response) { if (response.ok) { contactForm.style.display = ‘none’; confirmationEl.style.display = ‘flex’; } else { alert(‘Ocorreu um erro. Tente novamente.’); submitButton.innerHTML = originalText; submitButton.disabled = false; } }) .catch(function() { alert(‘Ocorreu um erro. Tente novamente.’); submitButton.innerHTML = originalText; submitButton.disabled = false; }); }); } }); (function() { var banner = document.getElementById(‘cookie-banner’); var acceptBtn = document.getElementById(‘cookie-accept’); var rejectBtn = document.getElementById(‘cookie-reject’); function hide() { if (banner) banner.classList.remove(‘visible’); } if (acceptBtn) { acceptBtn.addEventListener(‘click’, function() { localStorage.setItem(‘rafa_cookies’, ‘yes’); hide(); }); } if (rejectBtn) { rejectBtn.addEventListener(‘click’, function() { localStorage.setItem(‘rafa_cookies’, ‘no’); hide(); }); } if (!localStorage.getItem(‘rafa_cookies’)) { setTimeout(function() { if (banner) banner.classList.add(‘visible’); }, 1200); } })();

Continuar a ler