{"id":130,"date":"2022-11-21T12:37:34","date_gmt":"2022-11-21T12:37:34","guid":{"rendered":"https:\/\/di.realhomes.io\/ultra\/?page_id=130"},"modified":"2026-09-10T06:20:09","modified_gmt":"2026-09-10T05:20:09","slug":"home-2-2","status":"publish","type":"page","link":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"130\" class=\"elementor elementor-130\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5bc7e1bc elementor-section-full_width elementor-section-content-middle elementor-section-height-default elementor-section-height-default\" data-id=\"5bc7e1bc\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f22720\" data-id=\"2f22720\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3612ffca elementor-widget elementor-widget-html\" data-id=\"3612ffca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n  <title>ALF Immobilier \u2013 Hero<\/title>\n\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n\n  <link\n    href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600&family=Inter:wght@300;400;500&display=swap\"\n    rel=\"stylesheet\"\n  >\n\n  <style>\n\n    \/* ==================================================\n       ISOLATION HERO\n    ================================================== *\/\n\n    #alf-hero-root,\n    #alf-hero-root * {\n      box-sizing: border-box !important;\n      margin: 0 !important;\n      padding: 0 !important;\n      font-family: 'Inter', sans-serif !important;\n      line-height: normal !important;\n    }\n\n\n    \/* ==================================================\n       HERO\n    ================================================== *\/\n\n    #alf-hero-root {\n      position: relative !important;\n      width: 100% !important;\n      height: 760px !important;\n      overflow: hidden !important;\n      background: #0d0d0d !important;\n      display: block !important;\n    }\n\n\n    \/* ==================================================\n       SLIDER\n    ================================================== *\/\n\n    #alf-hero-root .alf-slides {\n      display: flex !important;\n      width: 100% !important;\n      height: 100% !important;\n\n      -webkit-transition:\n        -webkit-transform 0.9s cubic-bezier(0.76, 0, 0.24, 1) !important;\n\n      transition:\n        transform 0.9s cubic-bezier(0.76, 0, 0.24, 1) !important;\n\n      will-change: transform !important;\n    }\n\n\n    #alf-hero-root .alf-slide {\n      position: relative !important;\n      min-width: 100% !important;\n      width: 100% !important;\n      height: 100% !important;\n      flex-shrink: 0 !important;\n    }\n\n\n    #alf-hero-root .alf-slide img {\n      width: 100% !important;\n      height: 100% !important;\n      object-fit: cover !important;\n      object-position: center center !important;\n      display: block !important;\n      filter: none !important;\n    }\n\n\n    \/* ==================================================\n       D\u00c9GRAD\u00c9\n    ================================================== *\/\n\n    #alf-hero-root .alf-glass {\n      position: absolute !important;\n      inset: 0 !important;\n\n      z-index: 2 !important;\n\n      background: linear-gradient(\n        90deg,\n        rgba(0,0,0,0.34) 0%,\n        rgba(0,0,0,0.20) 28%,\n        rgba(0,0,0,0.08) 48%,\n        rgba(0,0,0,0.00) 68%\n      ) !important;\n\n      pointer-events: none !important;\n    }\n\n\n    \/* ==================================================\n       CONTENU GAUCHE\n    ================================================== *\/\n\n    #alf-hero-root .alf-content {\n      position: absolute !important;\n      inset: 0 !important;\n\n      z-index: 3 !important;\n\n      display: flex !important;\n      flex-direction: column !important;\n      justify-content: center !important;\n\n      padding: 0 64px !important;\n\n      pointer-events: none !important;\n    }\n\n\n    \/* ==================================================\n       SURTITRE\n    ================================================== *\/\n\n    #alf-hero-root .alf-eyebrow {\n      font-size: 11px !important;\n      letter-spacing: 4px !important;\n      text-transform: uppercase !important;\n      color: rgba(255,255,255,0.82) !important;\n      font-weight: 400 !important;\n      margin-bottom: 18px !important;\n      display: block !important;\n\n      text-shadow:\n        0 1px 2px rgba(0,0,0,0.35),\n        0 2px 10px rgba(0,0,0,0.20) !important;\n    }\n\n\n    \/* ==================================================\n       TITRE\n    ================================================== *\/\n\n    #alf-hero-root .alf-title {\n      font-family:\n        'Cormorant Garamond',\n        Georgia,\n        serif !important;\n\n      font-size: 76px !important;\n      font-weight: 600 !important;\n      font-style: italic !important;\n      line-height: 1.05 !important;\n\n      color: #fff !important;\n\n      max-width: 520px !important;\n\n      display: block !important;\n\n      text-shadow:\n        0 2px 6px rgba(0,0,0,0.28),\n        0 8px 24px rgba(0,0,0,0.18) !important;\n    }\n\n\n    #alf-hero-root .alf-title em {\n      font-style: normal !important;\n      color: #f0a0c0 !important;\n\n      font-family:\n        'Cormorant Garamond',\n        Georgia,\n        serif !important;\n    }\n\n\n    \/* ==================================================\n       SOUS-TITRE\n    ================================================== *\/\n\n    #alf-hero-root .alf-subtitle {\n      font-size: 15px !important;\n      font-weight: 400 !important;\n\n      color: rgba(255,255,255,0.88) !important;\n\n      margin-top: 22px !important;\n      margin-bottom: 38px !important;\n\n      max-width: 420px !important;\n\n      line-height: 1.65 !important;\n\n      display: block !important;\n\n      text-shadow:\n        0 1px 3px rgba(0,0,0,0.35),\n        0 4px 16px rgba(0,0,0,0.18) !important;\n    }\n\n\n    \/* ==================================================\n       CTA\n    ================================================== *\/\n\n    #alf-hero-root .alf-cta-row {\n      display: flex !important;\n      align-items: center !important;\n\n      gap: 22px !important;\n\n      pointer-events: all !important;\n    }\n\n\n    #alf-hero-root .alf-btn-main {\n      background: #E8006F !important;\n      color: #fff !important;\n\n      padding: 14px 32px !important;\n\n      border-radius: 4px !important;\n\n      font-size: 13px !important;\n      font-weight: 500 !important;\n      letter-spacing: 0.5px !important;\n\n      text-decoration: none !important;\n\n      display: inline-block !important;\n\n      transition:\n        background 0.25s,\n        transform 0.15s !important;\n    }\n\n\n    #alf-hero-root .alf-btn-main:hover {\n      background: #c0005a !important;\n\n      transform: translateY(-1px) !important;\n    }\n\n\n    #alf-hero-root .alf-btn-sec {\n      color: rgba(255,255,255,0.92) !important;\n\n      font-size: 13px !important;\n      font-weight: 500 !important;\n\n      text-decoration: none !important;\n\n      letter-spacing: 0.5px !important;\n\n      border-bottom:\n        1px solid rgba(255,255,255,0.55) !important;\n\n      padding-bottom: 2px !important;\n\n      display: inline-block !important;\n\n      transition:\n        color 0.2s,\n        border-color 0.2s !important;\n\n      text-shadow:\n        0 1px 3px rgba(0,0,0,0.30) !important;\n    }\n\n\n    #alf-hero-root .alf-btn-sec:hover {\n      color: #fff !important;\n      border-color: #fff !important;\n    }\n\n\n    \/* ==================================================\n       COMPTEUR\n    ================================================== *\/\n\n    #alf-hero-root .alf-counter {\n      position: absolute !important;\n\n      top: 28px !important;\n      right: 64px !important;\n\n      z-index: 4 !important;\n\n      font-size: 12px !important;\n\n      color: rgba(255,255,255,0.40) !important;\n\n      letter-spacing: 2px !important;\n\n      display: block !important;\n    }\n\n\n    \/* ==================================================\n       CARTE BIEN\n    ================================================== *\/\n\n    #alf-hero-root .alf-card {\n      position: absolute !important;\n\n      bottom: 0 !important;\n      right: 64px !important;\n\n      width: 316px !important;\n\n      background:\n        rgba(255,255,255,0.97) !important;\n\n      border-radius:\n        16px 16px 0 0 !important;\n\n      padding:\n        28px 28px 26px !important;\n\n      z-index: 5 !important;\n\n      box-shadow:\n        0 -4px 40px rgba(0,0,0,0.18) !important;\n    }\n\n\n    #alf-hero-root .alf-card-label {\n      font-size: 10px !important;\n      letter-spacing: 3px !important;\n      text-transform: uppercase !important;\n\n      color: #E8006F !important;\n\n      font-weight: 500 !important;\n\n      margin-bottom: 10px !important;\n\n      display: block !important;\n    }\n\n\n    #alf-hero-root .alf-card-title {\n      font-family:\n        'Cormorant Garamond',\n        Georgia,\n        serif !important;\n\n      font-size: 20px !important;\n      font-weight: 600 !important;\n\n      color: #0d0d0d !important;\n\n      line-height: 1.3 !important;\n\n      margin-bottom: 8px !important;\n\n      display: block !important;\n    }\n\n\n    #alf-hero-root .alf-card-loc {\n      font-size: 12px !important;\n\n      color: #9ca3af !important;\n\n      margin-bottom: 16px !important;\n\n      display: flex !important;\n      align-items: flex-start !important;\n\n      gap: 5px !important;\n    }\n\n\n    \/* ==================================================\n       STATS\n    ================================================== *\/\n\n    #alf-hero-root .alf-card-stats {\n      display: flex !important;\n\n      margin-bottom: 18px !important;\n\n      border:\n        1px solid #f0f0f0 !important;\n\n      border-radius: 8px !important;\n\n      overflow: hidden !important;\n    }\n\n\n    #alf-hero-root .alf-stat {\n      flex: 1 !important;\n\n      padding: 10px 0 !important;\n\n      text-align: center !important;\n\n      border-right:\n        1px solid #f0f0f0 !important;\n    }\n\n\n    #alf-hero-root .alf-stat:last-child {\n      border-right: none !important;\n    }\n\n\n    #alf-hero-root .alf-stat-val {\n      display: block !important;\n\n      font-size: 14px !important;\n      font-weight: 500 !important;\n\n      color: #0d0d0d !important;\n\n      margin-bottom: 2px !important;\n    }\n\n\n    #alf-hero-root .alf-stat-key {\n      font-size: 10px !important;\n\n      color: #9ca3af !important;\n\n      letter-spacing: 1px !important;\n      text-transform: uppercase !important;\n\n      display: block !important;\n    }\n\n\n    \/* ==================================================\n       PRIX\n    ================================================== *\/\n\n    #alf-hero-root .alf-card-price {\n      font-family:\n        'Cormorant Garamond',\n        Georgia,\n        serif !important;\n\n      font-size: 24px !important;\n\n      font-weight: 600 !important;\n\n      color: #0d0d0d !important;\n\n      margin-bottom: 16px !important;\n\n      display: block !important;\n    }\n\n\n    #alf-hero-root .alf-card-price span {\n      font-family:\n        'Inter',\n        sans-serif !important;\n\n      font-size: 13px !important;\n\n      font-weight: 300 !important;\n\n      color: #9ca3af !important;\n\n      margin-left: 4px !important;\n    }\n\n\n    \/* ==================================================\n       FOOTER CARTE\n    ================================================== *\/\n\n    #alf-hero-root .alf-card-footer {\n      display: flex !important;\n\n      align-items: center !important;\n\n      justify-content: space-between !important;\n\n      border-top:\n        1px solid #f5f5f5 !important;\n\n      padding-top: 16px !important;\n    }\n\n\n    #alf-hero-root .alf-card-badge {\n      font-size: 11px !important;\n\n      padding: 4px 12px !important;\n\n      border-radius: 20px !important;\n\n      background: #fce4f1 !important;\n\n      color: #9a0048 !important;\n\n      font-weight: 500 !important;\n\n      display: inline-block !important;\n    }\n\n\n    #alf-hero-root .alf-card-link {\n      background: #0d0d0d !important;\n\n      color: #fff !important;\n\n      padding: 9px 18px !important;\n\n      border-radius: 6px !important;\n\n      font-size: 12px !important;\n\n      font-weight: 500 !important;\n\n      letter-spacing: 0.3px !important;\n\n      text-decoration: none !important;\n\n      display: inline-block !important;\n\n      transition:\n        background 0.2s !important;\n    }\n\n\n    #alf-hero-root .alf-card-link:hover {\n      background: #E8006F !important;\n    }\n\n\n    \/* ==================================================\n       NAVIGATION\n    ================================================== *\/\n\n    #alf-hero-root .alf-nav {\n      position: absolute !important;\n\n      bottom: 32px !important;\n      left: 64px !important;\n\n      z-index: 4 !important;\n\n      display: flex !important;\n\n      align-items: center !important;\n\n      gap: 8px !important;\n    }\n\n\n    #alf-hero-root .alf-dot {\n      width: 28px !important;\n      height: 2px !important;\n\n      border: none !important;\n\n      cursor: pointer !important;\n\n      padding: 0 !important;\n\n      background:\n        rgba(255,255,255,0.25) !important;\n\n      border-radius: 2px !important;\n\n      transition:\n        background 0.3s,\n        width 0.3s !important;\n\n      display: inline-block !important;\n    }\n\n\n    #alf-hero-root .alf-dot.active {\n      background: #E8006F !important;\n\n      width: 44px !important;\n    }\n\n\n    \/* ==================================================\n       FL\u00c8CHES\n    ================================================== *\/\n\n    #alf-hero-root .alf-arrow {\n      position: absolute !important;\n\n      top: 50% !important;\n\n      transform:\n        translateY(-50%) !important;\n\n      z-index: 4 !important;\n\n      background:\n        rgba(255,255,255,0.10) !important;\n\n      border:\n        1px solid rgba(255,255,255,0.18) !important;\n\n      color: #fff !important;\n\n      width: 44px !important;\n      height: 44px !important;\n\n      border-radius: 50% !important;\n\n      cursor: pointer !important;\n\n      font-size: 16px !important;\n\n      display: flex !important;\n\n      align-items: center !important;\n      justify-content: center !important;\n\n      -webkit-backdrop-filter:\n        blur(4px) !important;\n\n      backdrop-filter:\n        blur(4px) !important;\n\n      transition:\n        background 0.2s,\n        border-color 0.2s !important;\n    }\n\n\n    #alf-hero-root .alf-arrow:hover {\n      background:\n        rgba(232,0,111,0.70) !important;\n\n      border-color:\n        transparent !important;\n    }\n\n\n    #alf-hero-root .alf-prev {\n      left: 20px !important;\n    }\n\n\n    #alf-hero-root .alf-next {\n      right: 20px !important;\n    }\n\n\n    \/* ==================================================\n       RESPONSIVE TABLETTE\n    ================================================== *\/\n\n    @media (max-width: 900px) {\n\n      #alf-hero-root {\n        height: 700px !important;\n      }\n\n      #alf-hero-root .alf-content {\n        padding:\n          0 40px !important;\n      }\n\n      #alf-hero-root .alf-title {\n        font-size:\n          62px !important;\n      }\n\n      #alf-hero-root .alf-card {\n        right: 40px !important;\n      }\n\n      #alf-hero-root .alf-counter {\n        right: 40px !important;\n      }\n\n      #alf-hero-root .alf-nav {\n        left: 40px !important;\n      }\n\n    }\n\n\n    \/* ==================================================\n       RESPONSIVE MOBILE\n    ================================================== *\/\n\n    @media (max-width: 700px) {\n\n      #alf-hero-root {\n        height: 760px !important;\n      }\n\n      #alf-hero-root .alf-glass {\n        background: linear-gradient(\n          180deg,\n          rgba(0,0,0,0.36) 0%,\n          rgba(0,0,0,0.12) 45%,\n          rgba(0,0,0,0.62) 100%\n        ) !important;\n      }\n\n      #alf-hero-root .alf-content {\n        justify-content:\n          flex-start !important;\n\n        padding:\n          100px 28px 0 !important;\n      }\n\n      #alf-hero-root .alf-title {\n        font-size:\n          52px !important;\n\n        max-width:\n          360px !important;\n      }\n\n      #alf-hero-root .alf-subtitle {\n        max-width:\n          340px !important;\n      }\n\n      #alf-hero-root .alf-card {\n        left: 20px !important;\n        right: 20px !important;\n\n        width: auto !important;\n\n        padding:\n          22px 22px 20px !important;\n      }\n\n      #alf-hero-root .alf-counter {\n        top: 24px !important;\n        right: 28px !important;\n      }\n\n      #alf-hero-root .alf-nav {\n        display: none !important;\n      }\n\n      #alf-hero-root .alf-arrow {\n        width: 38px !important;\n        height: 38px !important;\n      }\n\n      #alf-hero-root .alf-prev {\n        left: 12px !important;\n      }\n\n      #alf-hero-root .alf-next {\n        right: 12px !important;\n      }\n\n    }\n\n  <\/style>\n<\/head>\n\n\n<body>\n\n\n<div\n  id=\"alf-hero-root\"\n  aria-label=\"S\u00e9lection de biens immobiliers ALF Immobilier\"\n>\n\n\n  <!-- ==================================================\n       LES PHOTOS SONT G\u00c9N\u00c9R\u00c9ES AUTOMATIQUEMENT\n  ================================================== -->\n\n  <div\n    class=\"alf-slides\"\n    id=\"alfSlides\"\n  ><\/div>\n\n\n  <!-- D\u00e9grad\u00e9 -->\n\n  <div class=\"alf-glass\"><\/div>\n\n\n  <!-- ==================================================\n       CONTENU PRINCIPAL\n  ================================================== -->\n\n  <div class=\"alf-content\">\n\n    <span class=\"alf-eyebrow\">\n      Agence luso-fran\u00e7aise \u00b7 Portugal\n    <\/span>\n\n\n    <h1 class=\"alf-title\">\n      Trouvez<br>\n      Votre <em>Bonheur<\/em>\n    <\/h1>\n\n\n    <p class=\"alf-subtitle\">\n      Nous vous accompagnons dans votre projet immobilier\n      au Portugal, de Porto \u00e0 Aveiro.\n    <\/p>\n\n\n    <div class=\"alf-cta-row\">\n\n      <a\n        href=\"\/contact\"\n        class=\"alf-btn-main\"\n      >\n        Contactez-nous\n      <\/a>\n\n\n      <a\n        href=\"\/biens\"\n        class=\"alf-btn-sec\"\n      >\n        Voir tous les biens \u2192\n      <\/a>\n\n    <\/div>\n\n  <\/div>\n\n\n  <!-- ==================================================\n       COMPTEUR\n  ================================================== -->\n\n  <p class=\"alf-counter\">\n\n    <span id=\"alfCurrent\">\n      01\n    <\/span>\n\n    \/\n\n    <span id=\"alfTotal\">\n      00\n    <\/span>\n\n  <\/p>\n\n\n  <!-- ==================================================\n       CARTE BIEN\n  ================================================== -->\n\n  <div\n    class=\"alf-card\"\n    id=\"alfCard\"\n  >\n\n\n    <span\n      class=\"alf-card-label\"\n      id=\"cLabel\"\n    ><\/span>\n\n\n    <span\n      class=\"alf-card-title\"\n      id=\"cTitle\"\n    ><\/span>\n\n\n    <p class=\"alf-card-loc\">\n\n      \ud83d\udccd\n\n      <span id=\"cLoc\"><\/span>\n\n    <\/p>\n\n\n    <div class=\"alf-card-stats\">\n\n\n      <div class=\"alf-stat\">\n\n        <span\n          class=\"alf-stat-val\"\n          id=\"cSurface\"\n        ><\/span>\n\n        <span class=\"alf-stat-key\">\n          Surface\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"alf-stat\">\n\n        <span\n          class=\"alf-stat-val\"\n          id=\"cChambres\"\n        ><\/span>\n\n        <span class=\"alf-stat-key\">\n          Chambres\n        <\/span>\n\n      <\/div>\n\n\n      <div class=\"alf-stat\">\n\n        <span\n          class=\"alf-stat-val\"\n          id=\"cAnnee\"\n        ><\/span>\n\n        <span class=\"alf-stat-key\">\n          Construit\n        <\/span>\n\n      <\/div>\n\n\n    <\/div>\n\n\n    <span\n      class=\"alf-card-price\"\n      id=\"cPrice\"\n    ><\/span>\n\n\n    <div class=\"alf-card-footer\">\n\n\n      <span\n        class=\"alf-card-badge\"\n        id=\"cBadge\"\n      ><\/span>\n\n\n      <a\n        class=\"alf-card-link\"\n        href=\"#\"\n        id=\"cLink\"\n      >\n        Voir le bien \u2192\n      <\/a>\n\n\n    <\/div>\n\n\n  <\/div>\n\n\n  <!-- ==================================================\n       NAVIGATION G\u00c9N\u00c9R\u00c9E AUTOMATIQUEMENT\n  ================================================== -->\n\n  <div\n    class=\"alf-nav\"\n    id=\"alfNav\"\n  ><\/div>\n\n\n  <button\n    type=\"button\"\n    class=\"alf-arrow alf-prev\"\n    id=\"alfPrev\"\n    aria-label=\"Bien pr\u00e9c\u00e9dent\"\n  >\n    &#8592;\n  <\/button>\n\n\n  <button\n    type=\"button\"\n    class=\"alf-arrow alf-next\"\n    id=\"alfNext\"\n    aria-label=\"Bien suivant\"\n  >\n    &#8594;\n  <\/button>\n\n\n<\/div>\n\n\n<script>\n\n(function () {\n\n\n  \/* ==================================================\n     ==================================================\n\n     LISTE DES BIENS\n\n     POUR AJOUTER UN BIEN :\n     ----------------------\n\n     1. Copier un bloc { ... }\n     2. Le coller \u00e0 la fin de la liste\n     3. Modifier les informations\n     4. Ne rien modifier ailleurs dans le code\n\n     Le slider, les images, le compteur et les points\n     de navigation sont g\u00e9n\u00e9r\u00e9s automatiquement.\n\n     ==================================================\n     ================================================== *\/\n\n\n  var biens = [\n\n\n    \/* ==================================================\n       BIEN 1\n    ================================================== *\/\n\n    {\n      image:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2024\/06\/maison-viseu-1-scaled.jpg\",\n\n      alt:\n        \"Maison de village \u00e0 Viseu \u2013 ALF Immobilier Portugal\",\n\n      label:\n        \"Coup de c\u0153ur\",\n\n      title:\n        \"Viseu, maison de village \u00e0 r\u00e9nover\",\n\n      loc:\n        \"Decermilo, S\u00e1t\u00e3o, Viseu, Portugal\",\n\n      surface:\n        \"132 m\u00b2\",\n\n      chambres:\n        \"\u2014\",\n\n      annee:\n        \"\u2014\",\n\n      price:\n        \"Prix sur demande\",\n\n      pricesub:\n        \"\u00c0 vendre\",\n\n      badge:\n        \"En vedette\",\n\n      link:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/property\/maison-renover-viseu\/\"\n    },\n\n\n    \/* ==================================================\n       BIEN 2\n    ================================================== *\/\n\n    {\n      image:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2023\/11\/Oliveiro-do-douro-27-scaled.webp\",\n\n      alt:\n        \"Maison Oliveira do Douro \u2013 ALF Immobilier Portugal\",\n\n      label:\n        \"\u00c0 vendre\",\n\n      title:\n        \"Maison, Oliveira do Douro\",\n\n      loc:\n        \"Oliveira do Douro, Vila Nova de Gaia, Porto\",\n\n      surface:\n        \"190 m\u00b2\",\n\n      chambres:\n        \"4\",\n\n      annee:\n        \"\u2014\",\n\n      price:\n        \"220 000 \u20ac\",\n\n      pricesub:\n        \"\u00c0 vendre\",\n\n      badge:\n        \"Invest\",\n\n      link:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/property\/maison-oliveira-do-douro\/\"\n    },\n\n\n    \/* ==================================================\n       BIEN 3\n    ================================================== *\/\n\n    {\n      image:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2026\/09\/appartement-T3-viseu-2.jpg\",\n\n      alt:\n        \"Appartement T3 \u00e0 Viseu \u2013 ALF Immobilier Portugal\",\n\n      label:\n        \"\u00c0 vendre\",\n\n      title:\n        \"Appartement T3 Viseu\",\n\n      loc:\n        \"Viseu, Portugal\",\n\n      surface:\n        \"190 m\u00b2\",\n\n      chambres:\n        \"3\",\n\n      annee:\n        \"2019\",\n\n      price:\n        \"450 000 \u20ac\",\n\n      pricesub:\n        \"\u00c0 vendre\",\n\n      badge:\n        \"En vedette\",\n\n      link:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/property\/appartement-t3-viseu\/\"\n    },\n\n\n    \/* ==================================================\n       BIEN 4\n    ================================================== *\/\n\n    {\n      image:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2026\/08\/Maison-DO-CAMPO-53-scaled.webp\",\n\n      alt:\n        \"Maison T5 Coimbra \u2013 ALF Immobilier Portugal\",\n\n      label:\n        \"\u00c0 vendre\",\n\n      title:\n        \"Maison T5 Coimbra\",\n\n      loc:\n        \"Coimbra, Portugal\",\n\n      surface:\n        \"167 m\u00b2\",\n\n      chambres:\n        \"5\",\n\n      annee:\n        \"2019\",\n\n      price:\n        \"369 000 \u20ac\",\n\n      pricesub:\n        \"\u00c0 vendre\",\n\n      badge:\n        \"En vedette\",\n\n      link:\n        \"https:\/\/agencelusofrancaiseimmobilier.com\/property\/maison-t5-coimbra\/\"\n    }\n\n\n    \/* ==================================================\n       AJOUTER LE PROCHAIN BIEN ICI\n\n       IMPORTANT :\n       Ajouter une virgule apr\u00e8s le } du bien pr\u00e9c\u00e9dent.\n\n       EXEMPLE :\n\n       ,\n\n       {\n         image:\n           \"URL-DE-LIMAGE\",\n\n         alt:\n           \"Description de l'image\",\n\n         label:\n           \"\u00c0 vendre\",\n\n         title:\n           \"Titre du bien\",\n\n         loc:\n           \"Ville, Portugal\",\n\n         surface:\n           \"150 m\u00b2\",\n\n         chambres:\n           \"3\",\n\n         annee:\n           \"2024\",\n\n         price:\n           \"350 000 \u20ac\",\n\n         pricesub:\n           \"\u00c0 vendre\",\n\n         badge:\n           \"En vedette\",\n\n         link:\n           \"URL-DU-BIEN\"\n       }\n\n    ================================================== *\/\n\n\n  ];\n\n\n  \/* ==================================================\n     CONFIGURATION\n  ================================================== *\/\n\n  var AUTO_PLAY_DELAY = 5500;\n\n  var current = 0;\n\n  var timer = null;\n\n\n  \/* ==================================================\n     \u00c9L\u00c9MENTS\n  ================================================== *\/\n\n  var root =\n    document.getElementById('alf-hero-root');\n\n  var slidesEl =\n    document.getElementById('alfSlides');\n\n  var navEl =\n    document.getElementById('alfNav');\n\n  var currEl =\n    document.getElementById('alfCurrent');\n\n  var totalEl =\n    document.getElementById('alfTotal');\n\n  var prevEl =\n    document.getElementById('alfPrev');\n\n  var nextEl =\n    document.getElementById('alfNext');\n\n\n  \/* ==================================================\n     S\u00c9CURIT\u00c9\n  ================================================== *\/\n\n  if (\n    !root ||\n    !slidesEl ||\n    !navEl ||\n    !currEl ||\n    !totalEl ||\n    !prevEl ||\n    !nextEl ||\n    biens.length === 0\n  ) {\n    return;\n  }\n\n\n  \/* ==================================================\n     CR\u00c9ATION AUTOMATIQUE DES SLIDES\n  ================================================== *\/\n\n  function createSlides() {\n\n    slidesEl.innerHTML = '';\n\n\n    biens.forEach(\n      function (bien, index) {\n\n        var slide =\n          document.createElement('div');\n\n        slide.className =\n          'alf-slide';\n\n\n        var img =\n          document.createElement('img');\n\n\n        img.src =\n          bien.image;\n\n\n        img.alt =\n          bien.alt || bien.title || 'Bien immobilier';\n\n\n        \/*\n         * Premi\u00e8re image prioritaire pour le chargement.\n         * Les suivantes sont charg\u00e9es plus progressivement.\n         *\/\n\n        if (index === 0) {\n\n          img.loading =\n            'eager';\n\n          img.fetchPriority =\n            'high';\n\n        } else {\n\n          img.loading =\n            'lazy';\n\n        }\n\n\n        slide.appendChild(img);\n\n        slidesEl.appendChild(slide);\n\n      }\n    );\n\n  }\n\n\n  \/* ==================================================\n     CR\u00c9ATION AUTOMATIQUE DES POINTS\n  ================================================== *\/\n\n  function createNavigation() {\n\n    navEl.innerHTML = '';\n\n\n    biens.forEach(\n      function (_, index) {\n\n        var dot =\n          document.createElement('button');\n\n\n        dot.type =\n          'button';\n\n\n        dot.className =\n          'alf-dot' +\n          (\n            index === 0\n              ? ' active'\n              : ''\n          );\n\n\n        dot.setAttribute(\n          'aria-label',\n          'Afficher le bien ' + (index + 1)\n        );\n\n\n        dot.addEventListener(\n          'click',\n          function () {\n\n            goTo(index);\n\n            restartTimer();\n\n          }\n        );\n\n\n        navEl.appendChild(dot);\n\n      }\n    );\n\n  }\n\n\n  \/* ==================================================\n     MISE \u00c0 JOUR DE LA CARTE\n  ================================================== *\/\n\n  function updateCard(bien) {\n\n    if (!bien) {\n      return;\n    }\n\n\n    document\n      .getElementById('cLabel')\n      .textContent =\n      bien.label || '';\n\n\n    document\n      .getElementById('cTitle')\n      .textContent =\n      bien.title || '';\n\n\n    document\n      .getElementById('cLoc')\n      .textContent =\n      bien.loc || '';\n\n\n    document\n      .getElementById('cSurface')\n      .textContent =\n      bien.surface || '\u2014';\n\n\n    document\n      .getElementById('cChambres')\n      .textContent =\n      bien.chambres || '\u2014';\n\n\n    document\n      .getElementById('cAnnee')\n      .textContent =\n      bien.annee || '\u2014';\n\n\n    document\n      .getElementById('cPrice')\n      .innerHTML =\n      escapeHTML(\n        bien.price || 'Prix sur demande'\n      ) +\n      (\n        bien.pricesub\n          ? ' <span>\/ ' +\n            escapeHTML(bien.pricesub) +\n            '<\/span>'\n          : ''\n      );\n\n\n    document\n      .getElementById('cBadge')\n      .textContent =\n      bien.badge || '';\n\n\n    document\n      .getElementById('cLink')\n      .href =\n      bien.link || '#';\n\n\n    currEl.textContent =\n      String(\n        current + 1\n      ).padStart(\n        2,\n        '0'\n      );\n\n  }\n\n\n  \/* ==================================================\n     S\u00c9CURISATION TEXTE HTML\n  ================================================== *\/\n\n  function escapeHTML(value) {\n\n    return String(value)\n\n      .replace(\n        \/&\/g,\n        '&amp;'\n      )\n\n      .replace(\n        \/<\/g,\n        '&lt;'\n      )\n\n      .replace(\n        \/>\/g,\n        '&gt;'\n      )\n\n      .replace(\n        \/\"\/g,\n        '&quot;'\n      )\n\n      .replace(\n        \/'\/g,\n        '&#039;'\n      );\n\n  }\n\n\n  \/* ==================================================\n     CHANGEMENT DE SLIDE\n  ================================================== *\/\n\n  function goTo(index) {\n\n    \/*\n     * Protection si une valeur incorrecte est pass\u00e9e.\n     *\/\n\n    if (index < 0) {\n\n      index =\n        biens.length - 1;\n\n    }\n\n\n    if (index >= biens.length) {\n\n      index =\n        0;\n\n    }\n\n\n    current =\n      index;\n\n\n    slidesEl.style.transform =\n      'translateX(-' +\n      (current * 100) +\n      '%)';\n\n\n    \/*\n     * Mise \u00e0 jour des points.\n     *\/\n\n    var dots =\n      navEl.querySelectorAll(\n        '.alf-dot'\n      );\n\n\n    dots.forEach(\n      function (dot, dotIndex) {\n\n        dot.classList.toggle(\n          'active',\n          dotIndex === current\n        );\n\n      }\n    );\n\n\n    \/*\n     * Mise \u00e0 jour de la fiche.\n     *\/\n\n    updateCard(\n      biens[current]\n    );\n\n  }\n\n\n  \/* ==================================================\n     TIMER\n  ================================================== *\/\n\n  function startTimer() {\n\n    clearInterval(timer);\n\n\n    if (biens.length <= 1) {\n      return;\n    }\n\n\n    timer =\n      setInterval(\n        function () {\n\n          goTo(\n            current + 1\n          );\n\n        },\n        AUTO_PLAY_DELAY\n      );\n\n  }\n\n\n  function stopTimer() {\n\n    clearInterval(timer);\n\n    timer =\n      null;\n\n  }\n\n\n  function restartTimer() {\n\n    stopTimer();\n\n    startTimer();\n\n  }\n\n\n  \/* ==================================================\n     FL\u00c8CHES\n  ================================================== *\/\n\n  prevEl.addEventListener(\n    'click',\n    function () {\n\n      goTo(\n        current - 1\n      );\n\n      restartTimer();\n\n    }\n  );\n\n\n  nextEl.addEventListener(\n    'click',\n    function () {\n\n      goTo(\n        current + 1\n      );\n\n      restartTimer();\n\n    }\n  );\n\n\n  \/* ==================================================\n     PAUSE AU SURVOL\n  ================================================== *\/\n\n  root.addEventListener(\n    'mouseenter',\n    function () {\n\n      stopTimer();\n\n    }\n  );\n\n\n  root.addEventListener(\n    'mouseleave',\n    function () {\n\n      startTimer();\n\n    }\n  );\n\n\n  \/* ==================================================\n     PAUSE SI L'ONGLET N'EST PLUS VISIBLE\n  ================================================== *\/\n\n  document.addEventListener(\n    'visibilitychange',\n    function () {\n\n      if (document.hidden) {\n\n        stopTimer();\n\n      } else {\n\n        startTimer();\n\n      }\n\n    }\n  );\n\n\n  \/* ==================================================\n     INITIALISATION\n  ================================================== *\/\n\n  function init() {\n\n    \/*\n     * G\u00e9n\u00e9ration automatique.\n     *\/\n\n    createSlides();\n\n    createNavigation();\n\n\n    \/*\n     * Nombre total automatique.\n     *\/\n\n    totalEl.textContent =\n      String(\n        biens.length\n      ).padStart(\n        2,\n        '0'\n      );\n\n\n    \/*\n     * Premier bien.\n     *\/\n\n    goTo(0);\n\n\n    \/*\n     * Masquer les contr\u00f4les inutiles\n     * s'il n'y a qu'un seul bien.\n     *\/\n\n    if (biens.length <= 1) {\n\n      prevEl.style.display =\n        'none';\n\n      nextEl.style.display =\n        'none';\n\n      navEl.style.display =\n        'none';\n\n    }\n\n\n    \/*\n     * D\u00e9marrage automatique.\n     *\/\n\n    startTimer();\n\n  }\n\n\n  init();\n\n\n})();\n\n<\/script>\n\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4d764498 elementor-section-full_width elementor-reverse-tablet elementor-reverse-mobile elementor-hidden-mobile elementor-section-height-default elementor-section-height-default\" data-id=\"4d764498\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1a960720\" data-id=\"1a960720\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0b90a84 elementor-widget elementor-widget-spacer\" data-id=\"0b90a84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-58a46351 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"58a46351\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2d7578a\" data-id=\"2d7578a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-686f5591 elementor-widget elementor-widget-html\" data-id=\"686f5591\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>ALF Immobilier \u2013 Pourquoi nous choisir<\/title>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600&family=Inter:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    body { font-family: 'Inter', sans-serif; }\n\n    \/* ===== SECTION ===== *\/\n    #alf-why {\n      padding: 96px 64px;\n      background: #ffffff;\n      font-family: 'Inter', sans-serif;\n    }\n\n    \/* ===== HEADER ===== *\/\n    #alf-why .why-header {\n      display: flex;\n      align-items: flex-end;\n      justify-content: space-between;\n      margin-bottom: 72px;\n      gap: 40px;\n    }\n\n    #alf-why .why-eyebrow {\n      display: block;\n      font-size: 11px;\n      letter-spacing: 4px;\n      text-transform: uppercase;\n      color: #E8006F;\n      font-weight: 500;\n      margin-bottom: 16px;\n    }\n\n    #alf-why .why-title {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 52px;\n      font-weight: 600;\n      font-style: italic;\n      line-height: 1.08;\n      color: #0d0d0d;\n      max-width: 480px;\n    }\n\n    #alf-why .why-title em {\n      font-style: normal;\n      color: #E8006F;\n    }\n\n    #alf-why .why-intro {\n      font-size: 14px;\n      font-weight: 300;\n      color: #6b7280;\n      line-height: 1.75;\n      max-width: 320px;\n      text-align: right;\n    }\n\n    \/* ===== GRILLE 3 CARDS ===== *\/\n    #alf-why .why-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 2px;\n      background: #f5f5f5;\n      border-radius: 16px;\n      overflow: hidden;\n    }\n\n    #alf-why .why-card {\n      background: #ffffff;\n      padding: 48px 40px;\n      transition: background 0.3s;\n    }\n\n    #alf-why .why-card:hover {\n      background: #fdf7fa;\n    }\n\n    #alf-why .why-card:hover .why-card-num {\n      color: #E8006F;\n    }\n\n    \/* Num\u00e9ro d\u00e9coratif *\/\n    #alf-why .why-card-num {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 64px;\n      font-weight: 600;\n      color: #f0f0f0;\n      line-height: 1;\n      margin-bottom: 24px;\n      transition: color 0.3s;\n      display: block;\n    }\n\n    \/* Ic\u00f4ne *\/\n    #alf-why .why-card-icon {\n      width: 40px;\n      height: 40px;\n      background: #fce4f1;\n      border-radius: 10px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      margin-bottom: 20px;\n    }\n\n    #alf-why .why-card-icon svg {\n      width: 20px;\n      height: 20px;\n      stroke: #E8006F;\n      fill: none;\n      stroke-width: 1.5;\n      stroke-linecap: round;\n      stroke-linejoin: round;\n    }\n\n    \/* Trait rose *\/\n    #alf-why .why-card-line {\n      width: 24px;\n      height: 2px;\n      background: #E8006F;\n      border-radius: 2px;\n      margin-bottom: 20px;\n    }\n\n    #alf-why .why-card-title {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 22px;\n      font-weight: 600;\n      color: #0d0d0d;\n      line-height: 1.25;\n      margin-bottom: 12px;\n    }\n\n    #alf-why .why-card-text {\n      font-size: 13px;\n      font-weight: 300;\n      color: #6b7280;\n      line-height: 1.75;\n    }\n\n    \/* ===== BANDE NOIRE ===== *\/\n    #alf-why .why-bottom {\n      margin-top: 64px;\n      padding: 40px 48px;\n      background: #0d0d0d;\n      border-radius: 16px;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 32px;\n    }\n\n    #alf-why .why-bottom-text {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 28px;\n      font-weight: 600;\n      font-style: italic;\n      color: #ffffff;\n      max-width: 560px;\n      line-height: 1.3;\n    }\n\n    #alf-why .why-bottom-text em {\n      font-style: normal;\n      color: #f0a0c0;\n    }\n\n    #alf-why .why-bottom-cta {\n      background: #E8006F;\n      color: #ffffff;\n      padding: 14px 32px;\n      border-radius: 4px;\n      font-size: 13px;\n      font-weight: 500;\n      letter-spacing: 0.5px;\n      text-decoration: none;\n      white-space: nowrap;\n      display: inline-block;\n      transition: background 0.2s, transform 0.15s;\n    }\n    #alf-why .why-bottom-cta:hover {\n      background: #c0005a;\n      transform: translateY(-1px);\n    }\n\n    \/* ===== RESPONSIVE ===== *\/\n    @media (max-width: 900px) {\n      #alf-why {\n        padding: 64px 32px;\n      }\n      #alf-why .why-header {\n        flex-direction: column;\n        align-items: flex-start;\n        margin-bottom: 48px;\n      }\n      #alf-why .why-intro {\n        text-align: left;\n        max-width: 100%;\n      }\n      #alf-why .why-title {\n        font-size: 38px;\n      }\n      #alf-why .why-grid {\n        grid-template-columns: 1fr;\n      }\n      #alf-why .why-bottom {\n        flex-direction: column;\n        align-items: flex-start;\n        padding: 32px;\n      }\n      #alf-why .why-bottom-text {\n        font-size: 22px;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n\n<!--\n  =============================================\n  BLOC \"POURQUOI ALF IMMOBILIER\"\n  \u00c0 coller dans un widget HTML Elementor.\n\n  CE QUE TU PEUX MODIFIER FACILEMENT :\n  - Les textes des 3 cards (titre + paragraphe)\n  - Le texte de la bande noire\n  - Le lien du bouton CTA (href=\"\/contact\")\n  - Le titre et le sous-titre du header\n  =============================================\n-->\n\n<section id=\"alf-why\" aria-labelledby=\"alf-why-title\">\n\n  <!-- En-t\u00eate -->\n  <div class=\"why-header\">\n    <div>\n      <span class=\"why-eyebrow\">Notre diff\u00e9rence<\/span>\n      <!-- TITRE PRINCIPAL \u2014 modifiable -->\n      <h2 class=\"why-title\" id=\"alf-why-title\">\n        Pourquoi choisir<br><em>ALF Immobilier<\/em> ?\n      <\/h2>\n    <\/div>\n    <!-- PHRASE D'ACCROCHE \u2014 modifiable -->\n    <p class=\"why-intro\">\n      Vous cherchez un bien au Portugal depuis la France&nbsp;? Nous faisons le pont culturellement, linguistiquement, juridiquement.\n    <\/p>\n  <\/div>\n\n  <!-- Grille 3 arguments -->\n  <div class=\"why-grid\">\n\n    <!-- ARGUMENT 1 \u2014 modifiable -->\n    <div class=\"why-card\">\n      <span class=\"why-card-num\">01<\/span>\n      <div class=\"why-card-icon\" aria-hidden=\"true\">\n        <!-- Ic\u00f4ne : localisation -->\n        <svg viewBox=\"0 0 24 24\">\n          <path d=\"M12 2C8.686 2 6 4.686 6 8c0 5.25 6 13 6 13s6-7.75 6-13c0-3.314-2.686-6-6-6z\"\/>\n          <circle cx=\"12\" cy=\"8\" r=\"2.5\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"why-card-line\"><\/div>\n      <h3 class=\"why-card-title\">Expertise locale<\/h3>\n      <p class=\"why-card-text\">\n        Porto, Aveiro, Vila Nova de Gaia, nous connaissons chaque quartier, chaque nuance du march\u00e9 portugais. Vous achetez en confiance, sans surprise.\n      <\/p>\n    <\/div>\n\n    <!-- ARGUMENT 2 \u2014 modifiable -->\n    <div class=\"why-card\">\n      <span class=\"why-card-num\">02<\/span>\n      <div class=\"why-card-icon\" aria-hidden=\"true\">\n        <!-- Ic\u00f4ne : personne \/ accompagnement -->\n        <svg viewBox=\"0 0 24 24\">\n          <circle cx=\"12\" cy=\"7\" r=\"4\"\/>\n          <path d=\"M4 21c0-4 3.582-7 8-7s8 3 8 7\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"why-card-line\"><\/div>\n      <h3 class=\"why-card-title\">Accompagnement francophone<\/h3>\n      <p class=\"why-card-text\">\n        De la premi\u00e8re visite \u00e0 la signature chez le notaire, vous \u00eates guid\u00e9s en fran\u00e7ais. Z\u00e9ro barri\u00e8re linguistique, z\u00e9ro malentendu.\n      <\/p>\n    <\/div>\n\n    <!-- ARGUMENT 3 \u2014 modifiable -->\n    <div class=\"why-card\">\n      <span class=\"why-card-num\">03<\/span>\n      <div class=\"why-card-icon\" aria-hidden=\"true\">\n        <!-- Ic\u00f4ne : validation \/ r\u00e9seau -->\n        <svg viewBox=\"0 0 24 24\">\n          <path d=\"M9 12l2 2 4-4\"\/>\n          <path d=\"M21 12c0 4.97-4.03 9-9 9S3 16.97 3 12 7.03 3 12 3s9 4.03 9 9z\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"why-card-line\"><\/div>\n      <h3 class=\"why-card-title\">R\u00e9seau de confiance<\/h3>\n      <p class=\"why-card-text\">\n        Notaires, avocats, artisans, gestionnaires locatifs, notre r\u00e9seau vous ouvre toutes les portes, bien au-del\u00e0 de la simple transaction.\n      <\/p>\n    <\/div>\n\n  <\/div>\n\n  <!-- Bande de r\u00e9assurance noire -->\n  <div class=\"why-bottom\">\n    <!-- PHRASE FORTE \u2014 modifiable -->\n    <p class=\"why-bottom-text\">\n      Vous \u00eates en France, on est au Portugal \u2014<br>\n      <em>on s'occupe de tout.<\/em>\n    <\/p>\n    <!-- LIEN CTA \u2014 remplace href par ton URL de contact -->\n    <a href=\"\/contact-2\/\" class=\"why-bottom-cta\">\n      Parler \u00e0 un conseiller \u2192\n    <\/a>\n  <\/div>\n\n<\/section>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4cfd0058 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4cfd0058\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1bb26362\" data-id=\"1bb26362\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7db84c85 elementor-widget elementor-widget-html\" data-id=\"7db84c85\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n\n<head>\n\n  <meta charset=\"UTF-8\">\n\n  <meta\n    name=\"viewport\"\n    content=\"width=device-width, initial-scale=1.0\"\n  >\n\n  <title>\n    ALF Immobilier \u2013 Grille de propri\u00e9t\u00e9s\n  <\/title>\n\n\n  <link\n    rel=\"preconnect\"\n    href=\"https:\/\/fonts.googleapis.com\"\n  >\n\n  <link\n    rel=\"preconnect\"\n    href=\"https:\/\/fonts.gstatic.com\"\n    crossorigin\n  >\n\n  <link\n    href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,600;1,600&family=Inter:wght@300;400;500&display=swap\"\n    rel=\"stylesheet\"\n  >\n\n\n  <style>\n\n\n    \/* ==================================================\n       ISOLATION\n    ================================================== *\/\n\n    #alf-props,\n    #alf-props * {\n      box-sizing: border-box;\n    }\n\n\n    #alf-props {\n      padding: 80px 64px;\n\n      background: #fafafa;\n\n      font-family:\n        'Inter',\n        sans-serif;\n    }\n\n\n    \/* ==================================================\n       HEADER\n    ================================================== *\/\n\n    #alf-props .props-header {\n\n      display: flex;\n\n      align-items: flex-end;\n\n      justify-content: space-between;\n\n      margin-bottom: 48px;\n\n      gap: 24px;\n\n    }\n\n\n    #alf-props .props-eyebrow {\n\n      display: block;\n\n      font-size: 11px;\n\n      letter-spacing: 4px;\n\n      text-transform: uppercase;\n\n      color: #E8006F;\n\n      font-weight: 500;\n\n      margin-bottom: 14px;\n\n    }\n\n\n    #alf-props .props-title {\n\n      font-family:\n        'Cormorant Garamond',\n        Georgia,\n        serif;\n\n      font-size: 44px;\n\n      font-weight: 600;\n\n      font-style: italic;\n\n      color: #0d0d0d;\n\n      line-height: 1.1;\n\n      margin: 0;\n\n    }\n\n\n    #alf-props .props-title em {\n\n      font-style: normal;\n\n      color: #E8006F;\n\n    }\n\n\n    #alf-props .props-link {\n\n      font-size: 13px;\n\n      color: #6b7280;\n\n      text-decoration: none;\n\n      border-bottom:\n        1px solid #e5e7eb;\n\n      padding-bottom: 2px;\n\n      white-space: nowrap;\n\n      transition:\n        color 0.2s,\n        border-color 0.2s;\n\n    }\n\n\n    #alf-props .props-link:hover {\n\n      color: #E8006F;\n\n      border-color: #E8006F;\n\n    }\n\n\n    \/* ==================================================\n       RECHERCHE\n    ================================================== *\/\n\n    #alf-props .props-search {\n\n      display: flex;\n\n      align-items: center;\n\n      background: #fff;\n\n      border:\n        1px solid #e5e7eb;\n\n      border-radius: 12px;\n\n      overflow: hidden;\n\n      margin-bottom: 48px;\n\n      box-shadow:\n        0 2px 12px rgba(0,0,0,0.05);\n\n    }\n\n\n    #alf-props .props-select-wrap {\n\n      flex: 1;\n\n      position: relative;\n\n      border-right:\n        1px solid #f0f0f0;\n\n    }\n\n\n    #alf-props .props-select-label {\n\n      position: absolute;\n\n      top: 12px;\n\n      left: 20px;\n\n      font-size: 10px;\n\n      letter-spacing: 2px;\n\n      text-transform: uppercase;\n\n      color: #9ca3af;\n\n      font-weight: 500;\n\n      pointer-events: none;\n\n    }\n\n\n    #alf-props .props-select {\n\n      width: 100%;\n\n      padding:\n        32px 40px 12px 20px;\n\n      border: none;\n\n      outline: none;\n\n      background: transparent;\n\n      font-size: 14px;\n\n      font-weight: 400;\n\n      color: #0d0d0d;\n\n      font-family:\n        'Inter',\n        sans-serif;\n\n      cursor: pointer;\n\n      appearance: none;\n\n      -webkit-appearance: none;\n\n    }\n\n\n    #alf-props .props-select-arrow {\n\n      position: absolute;\n\n      right: 16px;\n\n      top: 50%;\n\n      transform:\n        translateY(-50%);\n\n      color: #9ca3af;\n\n      font-size: 10px;\n\n      pointer-events: none;\n\n    }\n\n\n    #alf-props .props-search-btn {\n\n      background: #E8006F;\n\n      color: #fff;\n\n      border: none;\n\n      cursor: pointer;\n\n      padding: 0 36px;\n\n      height: 72px;\n\n      font-size: 13px;\n\n      font-weight: 500;\n\n      letter-spacing: 0.5px;\n\n      font-family:\n        'Inter',\n        sans-serif;\n\n      white-space: nowrap;\n\n      transition:\n        background 0.2s;\n\n    }\n\n\n    #alf-props .props-search-btn:hover {\n\n      background: #c0005a;\n\n    }\n\n\n    \/* ==================================================\n       GRILLE\n\n       DESKTOP :\n       1 - 2 - 3\n       4 - 5 - 6\n       7 - 8 - 9\n       etc.\n    ================================================== *\/\n\n    #alf-props .props-grid {\n\n      display: grid;\n\n      grid-template-columns:\n        repeat(3, minmax(0, 1fr));\n\n      gap: 24px;\n\n      margin-bottom: 56px;\n\n      align-items: stretch;\n\n    }\n\n\n    \/* ==================================================\n       CARTE\n    ================================================== *\/\n\n    #alf-props .prop-card {\n\n      background: #fff;\n\n      border-radius: 16px;\n\n      overflow: hidden;\n\n      border:\n        1px solid #f0f0f0;\n\n      transition:\n        transform 0.3s,\n        box-shadow 0.3s;\n\n      cursor: pointer;\n\n      text-decoration: none;\n\n      display: flex;\n\n      flex-direction: column;\n\n      color: inherit;\n\n      height: 100%;\n\n      min-width: 0;\n\n    }\n\n\n    #alf-props .prop-card:hover {\n\n      transform:\n        translateY(-6px);\n\n      box-shadow:\n        0 16px 48px rgba(0,0,0,0.10);\n\n    }\n\n\n    #alf-props .prop-card:hover\n    .prop-card-cta {\n\n      opacity: 1;\n\n      transform:\n        translateY(0);\n\n    }\n\n\n    #alf-props .prop-card:hover\n    .prop-img-wrap img {\n\n      transform:\n        scale(1.04);\n\n    }\n\n\n    \/* ==================================================\n       IMAGE\n    ================================================== *\/\n\n    #alf-props .prop-img-wrap {\n\n      position: relative;\n\n      height: 220px;\n\n      overflow: hidden;\n\n      flex-shrink: 0;\n\n    }\n\n\n    #alf-props .prop-img-wrap img {\n\n      width: 100%;\n\n      height: 100%;\n\n      object-fit: cover;\n\n      display: block;\n\n      transition:\n        transform 0.5s;\n\n    }\n\n\n    \/* ==================================================\n       BADGES\n    ================================================== *\/\n\n    #alf-props .prop-badges {\n\n      position: absolute;\n\n      top: 14px;\n\n      left: 14px;\n\n      display: flex;\n\n      gap: 6px;\n\n      flex-wrap: wrap;\n\n    }\n\n\n    #alf-props .prop-badge {\n\n      font-size: 10px;\n\n      font-weight: 600;\n\n      padding:\n        4px 10px;\n\n      border-radius: 20px;\n\n      letter-spacing: 0.3px;\n\n    }\n\n\n    #alf-props .pb-sell {\n\n      background: #0d0d0d;\n\n      color: #fff;\n\n    }\n\n\n    #alf-props .pb-feat {\n\n      background: #E8006F;\n\n      color: #fff;\n\n    }\n\n\n    #alf-props .pb-inv {\n\n      background: #fff;\n\n      color: #0d0d0d;\n\n    }\n\n\n    #alf-props .pb-price {\n\n      background: #fce4f1;\n\n      color: #9a0048;\n\n    }\n\n\n    \/* ==================================================\n       NOMBRE DE PHOTOS\n    ================================================== *\/\n\n    #alf-props .prop-photo-count {\n\n      position: absolute;\n\n      bottom: 14px;\n\n      right: 14px;\n\n      background:\n        rgba(0,0,0,0.55);\n\n      color: #fff;\n\n      font-size: 11px;\n\n      padding:\n        4px 10px;\n\n      border-radius: 20px;\n\n      display: flex;\n\n      align-items: center;\n\n      gap: 5px;\n\n      backdrop-filter:\n        blur(4px);\n\n      -webkit-backdrop-filter:\n        blur(4px);\n\n    }\n\n\n    \/* ==================================================\n       CORPS\n    ================================================== *\/\n\n    #alf-props .prop-card-body {\n\n      padding:\n        22px 22px 18px;\n\n      display: flex;\n\n      flex-direction: column;\n\n      flex: 1;\n\n    }\n\n\n    #alf-props .prop-card-type {\n\n      display: block;\n\n      font-size: 10px;\n\n      letter-spacing: 2px;\n\n      text-transform: uppercase;\n\n      color: #9ca3af;\n\n      font-weight: 500;\n\n      margin-bottom: 8px;\n\n    }\n\n\n    #alf-props .prop-card-title {\n\n      font-family:\n        'Cormorant Garamond',\n        Georgia,\n        serif;\n\n      font-size: 18px;\n\n      font-weight: 600;\n\n      color: #0d0d0d;\n\n      line-height: 1.3;\n\n      margin:\n        0 0 6px;\n\n    }\n\n\n    #alf-props .prop-card-loc {\n\n      font-size: 12px;\n\n      color: #9ca3af;\n\n      margin:\n        0 0 16px;\n\n      display: flex;\n\n      align-items: center;\n\n      gap: 4px;\n\n    }\n\n\n    \/* ==================================================\n       STATS\n    ================================================== *\/\n\n    #alf-props .prop-card-stats {\n\n      display: flex;\n\n      margin-bottom: 18px;\n\n      border-top:\n        1px solid #f5f5f5;\n\n      border-bottom:\n        1px solid #f5f5f5;\n\n      padding:\n        12px 0;\n\n    }\n\n\n    #alf-props .prop-stat {\n\n      flex: 1;\n\n      display: flex;\n\n      align-items: center;\n\n      gap: 4px;\n\n      font-size: 12px;\n\n      color: #6b7280;\n\n      min-width: 0;\n\n    }\n\n\n    #alf-props .prop-stat +\n    .prop-stat {\n\n      border-left:\n        1px solid #f0f0f0;\n\n      padding-left: 12px;\n\n    }\n\n\n    #alf-props .prop-stat-val {\n\n      font-weight: 500;\n\n      color: #0d0d0d;\n\n    }\n\n\n    \/* ==================================================\n       FOOTER CARTE\n    ================================================== *\/\n\n    #alf-props .prop-card-footer {\n\n      display: flex;\n\n      align-items: center;\n\n      justify-content: space-between;\n\n      gap: 12px;\n\n      margin-top: auto;\n\n    }\n\n\n    #alf-props .prop-price {\n\n      font-family:\n        'Cormorant Garamond',\n        Georgia,\n        serif;\n\n      font-size: 22px;\n\n      font-weight: 600;\n\n      color: #0d0d0d;\n\n    }\n\n\n    #alf-props .prop-price-sub {\n\n      font-family:\n        'Inter',\n        sans-serif;\n\n      font-size: 11px;\n\n      font-weight: 300;\n\n      color: #9ca3af;\n\n      margin-left: 4px;\n\n    }\n\n\n    #alf-props .prop-card-cta {\n\n      background: #0d0d0d;\n\n      color: #fff;\n\n      padding:\n        8px 16px;\n\n      border-radius: 6px;\n\n      font-size: 12px;\n\n      font-weight: 500;\n\n      text-decoration: none;\n\n      opacity: 0;\n\n      transform:\n        translateY(4px);\n\n      transition:\n        opacity 0.25s,\n        transform 0.25s,\n        background 0.2s;\n\n      display: inline-block;\n\n      white-space: nowrap;\n\n    }\n\n\n    #alf-props .prop-card:hover\n    .prop-card-cta {\n\n      background: #0d0d0d;\n\n    }\n\n\n    \/* ==================================================\n       FOOTER SECTION\n    ================================================== *\/\n\n    #alf-props .props-footer {\n\n      text-align: center;\n\n    }\n\n\n    #alf-props .props-all-btn {\n\n      display: inline-block;\n\n      border:\n        1px solid #0d0d0d;\n\n      color: #0d0d0d;\n\n      padding:\n        14px 40px;\n\n      border-radius: 4px;\n\n      font-size: 13px;\n\n      font-weight: 500;\n\n      letter-spacing: 0.5px;\n\n      text-decoration: none;\n\n      transition:\n        background 0.2s,\n        color 0.2s;\n\n    }\n\n\n    #alf-props .props-all-btn:hover {\n\n      background: #0d0d0d;\n\n      color: #fff;\n\n    }\n\n\n    \/* ==================================================\n       TABLETTE\n    ================================================== *\/\n\n    @media (max-width: 1024px) {\n\n      #alf-props {\n\n        padding:\n          64px 32px;\n\n      }\n\n\n      #alf-props .props-grid {\n\n        grid-template-columns:\n          repeat(2, minmax(0, 1fr));\n\n      }\n\n    }\n\n\n    \/* ==================================================\n       MOBILE\n    ================================================== *\/\n\n    @media (max-width: 640px) {\n\n      #alf-props {\n\n        padding:\n          48px 20px;\n\n      }\n\n\n      #alf-props .props-header {\n\n        flex-direction: column;\n\n        align-items: flex-start;\n\n      }\n\n\n      #alf-props .props-title {\n\n        font-size: 32px;\n\n      }\n\n\n      #alf-props .props-grid {\n\n        grid-template-columns:\n          1fr;\n\n      }\n\n\n      #alf-props .props-search {\n\n        flex-direction: column;\n\n      }\n\n\n      #alf-props .props-select-wrap {\n\n        width: 100%;\n\n        border-right: none;\n\n        border-bottom:\n          1px solid #f0f0f0;\n\n      }\n\n\n      #alf-props .props-search-btn {\n\n        width: 100%;\n\n        height: 52px;\n\n      }\n\n\n      #alf-props .prop-card-cta {\n\n        opacity: 1;\n\n        transform:\n          translateY(0);\n\n      }\n\n    }\n\n\n  <\/style>\n\n<\/head>\n\n\n<body>\n\n\n<section\n  id=\"alf-props\"\n  aria-labelledby=\"alf-props-title\"\n>\n\n\n  <!-- ==================================================\n       HEADER\n  ================================================== -->\n\n  <div class=\"props-header\">\n\n    <div>\n\n      <span class=\"props-eyebrow\">\n        Nos biens\n      <\/span>\n\n\n      <h2\n        class=\"props-title\"\n        id=\"alf-props-title\"\n      >\n\n        D\u00e9couvrez les derni\u00e8res<br>\n\n        <em>propri\u00e9t\u00e9s<\/em>\n\n      <\/h2>\n\n    <\/div>\n\n\n    <a\n      href=\"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/biens-immobiliers-portugal-vente\/\"\n      class=\"props-link\"\n    >\n\n      Voir tous les biens \u2192\n\n    <\/a>\n\n  <\/div>\n\n\n  <!-- ==================================================\n       RECHERCHE\n  ================================================== -->\n\n  <form\n    class=\"props-search\"\n    action=\"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/biens-immobiliers-portugal-vente\/\"\n    method=\"GET\"\n  >\n\n\n    <div class=\"props-select-wrap\">\n\n      <span class=\"props-select-label\">\n        Ville\n      <\/span>\n\n\n      <select\n        class=\"props-select\"\n        name=\"ville\"\n        aria-label=\"Filtrer par ville\"\n      >\n\n        <option value=\"\">\n          Toutes les villes\n        <\/option>\n\n        <option value=\"porto\">\n          Porto\n        <\/option>\n\n        <option value=\"aveiro\">\n          Aveiro\n        <\/option>\n\n        <option value=\"viseu\">\n          Viseu\n        <\/option>\n\n        <option value=\"coimbra\">\n          Coimbra\n        <\/option>\n\n        <option value=\"gaia\">\n          Vila Nova de Gaia\n        <\/option>\n\n        <option value=\"ovar\">\n          Ovar\n        <\/option>\n\n      <\/select>\n\n\n      <span\n        class=\"props-select-arrow\"\n        aria-hidden=\"true\"\n      >\n        \u25be\n      <\/span>\n\n    <\/div>\n\n\n    <div class=\"props-select-wrap\">\n\n      <span class=\"props-select-label\">\n        Statut\n      <\/span>\n\n\n      <select\n        class=\"props-select\"\n        name=\"statut\"\n        aria-label=\"Filtrer par statut\"\n      >\n\n        <option value=\"\">\n          Tous les statuts\n        <\/option>\n\n        <option value=\"vendre\">\n          \u00c0 vendre\n        <\/option>\n\n        <option value=\"reserve\">\n          R\u00e9serv\u00e9\n        <\/option>\n\n        <option value=\"vendu\">\n          Vendu\n        <\/option>\n\n      <\/select>\n\n\n      <span\n        class=\"props-select-arrow\"\n        aria-hidden=\"true\"\n      >\n        \u25be\n      <\/span>\n\n    <\/div>\n\n\n    <div class=\"props-select-wrap\">\n\n      <span class=\"props-select-label\">\n        Type\n      <\/span>\n\n\n      <select\n        class=\"props-select\"\n        name=\"type\"\n        aria-label=\"Filtrer par type de bien\"\n      >\n\n        <option value=\"\">\n          Tous les types\n        <\/option>\n\n        <option value=\"maison\">\n          Maison\n        <\/option>\n\n        <option value=\"appartement\">\n          Appartement\n        <\/option>\n\n        <option value=\"terrain\">\n          Terrain\n        <\/option>\n\n      <\/select>\n\n\n      <span\n        class=\"props-select-arrow\"\n        aria-hidden=\"true\"\n      >\n        \u25be\n      <\/span>\n\n    <\/div>\n\n\n    <button\n      type=\"submit\"\n      class=\"props-search-btn\"\n    >\n\n      Rechercher \u2192\n\n    <\/button>\n\n\n  <\/form>\n\n\n  <!-- ==================================================\n       GRILLE\n\n       NE PLUS AJOUTER LES CARTES ICI.\n\n       Le JavaScript les g\u00e9n\u00e8re automatiquement depuis\n       la liste \"biens\" situ\u00e9e plus bas.\n  ================================================== -->\n\n  <div\n    class=\"props-grid\"\n    id=\"alfPropsGrid\"\n  ><\/div>\n\n\n  <!-- ==================================================\n       VOIR TOUS\n  ================================================== -->\n\n  <div class=\"props-footer\">\n\n    <a\n      href=\"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/biens-immobiliers-portugal-vente\/\"\n      class=\"props-all-btn\"\n    >\n\n      Voir tous les biens\n\n    <\/a>\n\n  <\/div>\n\n\n<\/section>\n\n\n\n<script>\n\n(function () {\n\n\n  \/* ==================================================\n     ==================================================\n\n     LISTE DES BIENS\n\n     C'EST LA SEULE ZONE \u00c0 MODIFIER.\n\n     POUR AJOUTER UN BIEN :\n\n     1. Copier un bloc biens.push({ ... });\n     2. Le coller apr\u00e8s le dernier bien.\n     3. Modifier les informations.\n\n     Rien d'autre \u00e0 modifier.\n\n     3 biens = ligne 1\n     6 biens = lignes 1 + 2\n     9 biens = lignes 1 + 2 + 3\n\n     ==================================================\n     ================================================== *\/\n\n\n  var biens = [];\n\n\n  \/* ==================================================\n     BIEN 1\n  ================================================== *\/\n\n  biens.push({\n\n    image:\n      \"https:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2024\/06\/maison-viseu-1-scaled.jpg\",\n\n    alt:\n      \"Maison de village \u00e0 Viseu \u2013 ALF Immobilier Portugal\",\n\n    link:\n      \"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/property\/maison-renover-viseu\/\",\n\n    type:\n      \"Maison\",\n\n    title:\n      \"Viseu, opportunit\u00e9 unique : maison de village \u00e0 r\u00e9nover\",\n\n    location:\n      \"Decermilo, S\u00e1t\u00e3o, Viseu, Portugal\",\n\n    surface:\n      \"132\",\n\n    chambres:\n      \"\u2014\",\n\n    sdb:\n      \"\u2014\",\n\n    price:\n      \"Prix sur demande\",\n\n    priceSub:\n      \"\",\n\n    photos:\n      \"2\",\n\n    badges: [\n\n      {\n        text: \"\u00c0 vendre\",\n        style: \"sell\"\n      },\n\n      {\n        text: \"En vedette\",\n        style: \"feat\"\n      },\n\n      {\n        text: \"Prix sur demande\",\n        style: \"price\"\n      }\n\n    ]\n\n  });\n\n\n  \/* ==================================================\n     BIEN 2\n  ================================================== *\/\n\n  biens.push({\n\n    image:\n      \"https:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2026\/08\/Maison-DO-CAMPO-53-scaled.webp\",\n\n    alt:\n      \"Maison T5 \u00e0 S\u00e3o Jo\u00e3o do Campo, Coimbra \u2013 ALF Immobilier Portugal\",\n\n    link:\n      \"https:\/\/agencelusofrancaiseimmobilier.com\/property\/maison-t5-coimbra\/\",\n\n    type:\n      \"Maison\",\n\n    title:\n      \"Maison T5, Coimbra\",\n\n    location:\n      \"S\u00e3o Jo\u00e3o do Campo, Coimbra\",\n\n    surface:\n      \"168\",\n\n    chambres:\n      \"5\",\n\n    sdb:\n      \"4\",\n\n    price:\n      \"369 000 \u20ac\",\n\n    priceSub:\n      \"\",\n\n    photos:\n      \"27\",\n\n    badges: [\n\n      {\n        text: \"\u00c0 vendre\",\n        style: \"sell\"\n      },\n\n      {\n        text: \"Invest\",\n        style: \"inv\"\n      }\n\n    ]\n\n  });\n\n\n  \/* ==================================================\n     BIEN 3\n  ================================================== *\/\n\n  biens.push({\n\n    image:\n      \"https:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2026\/09\/appartement-T3-viseu-2.jpg\",\n\n    alt:\n      \"Appartement T3 \u00e0 Viseu \u2013 ALF Immobilier Portugal\",\n\n    link:\n      \"https:\/\/agencelusofrancaiseimmobilier.com\/property\/appartement-t3-viseu\/\",\n\n    type:\n      \"Appartement \u00b7 Appartement de caract\u00e8re\",\n\n    title:\n      \"Appartement T3 Viseu\",\n\n    location:\n      \"Viseu\",\n\n    \/*\n     ATTENTION :\n     La valeur pr\u00e9sente dans ton ancien code est 1907.\n     Je la conserve telle quelle ici.\n    *\/\n\n    surface:\n      \"1907\",\n\n    chambres:\n      \"3\",\n\n    sdb:\n      \"3\",\n\n    price:\n      \"450 000 \u20ac\",\n\n    priceSub:\n      \"\",\n\n    photos:\n      \"13\",\n\n    badges: [\n\n      {\n        text: \"\u00c0 vendre\",\n        style: \"sell\"\n      },\n\n      {\n        text: \"En vedette\",\n        style: \"feat\"\n      }\n\n    ]\n\n  });\n\n\n  \/* ==================================================\n     AJOUTER LE BIEN 4 ICI\n\n     Il appara\u00eetra automatiquement sur la ligne 2.\n\n     EXEMPLE \u00c0 DUPLIQUER :\n\n     biens.push({\n\n       image:\n         \"URL-DE-LIMAGE\",\n\n       alt:\n         \"Description SEO de l'image\",\n\n       link:\n         \"URL-DE-LA-FICHE-DU-BIEN\",\n\n       type:\n         \"Maison\",\n\n       title:\n         \"Titre du bien\",\n\n       location:\n         \"Ville, Portugal\",\n\n       surface:\n         \"150\",\n\n       chambres:\n         \"3\",\n\n       sdb:\n         \"2\",\n\n       price:\n         \"350 000 \u20ac\",\n\n       priceSub:\n         \"\",\n\n       photos:\n         \"20\",\n\n       badges: [\n\n         {\n           text: \"\u00c0 vendre\",\n           style: \"sell\"\n         },\n\n         {\n           text: \"En vedette\",\n           style: \"feat\"\n         }\n\n       ]\n\n     });\n\n  ================================================== *\/\n\n\n  \/* ==================================================\n     TYPES DE BADGES\n\n     sell  = noir\n     feat  = rose\n     inv   = blanc\n     price = rose clair\n  ================================================== *\/\n\n\n  \/* ==================================================\n     G\u00c9N\u00c9RATION DE LA GRILLE\n  ================================================== *\/\n\n  var grid =\n    document.getElementById(\n      'alfPropsGrid'\n    );\n\n\n  if (!grid) {\n    return;\n  }\n\n\n  \/* ==================================================\n     S\u00c9CURISATION DU TEXTE\n  ================================================== *\/\n\n  function escapeHTML(value) {\n\n    return String(\n      value == null\n        ? ''\n        : value\n    )\n\n      .replace(\n        \/&\/g,\n        '&amp;'\n      )\n\n      .replace(\n        \/<\/g,\n        '&lt;'\n      )\n\n      .replace(\n        \/>\/g,\n        '&gt;'\n      )\n\n      .replace(\n        \/\"\/g,\n        '&quot;'\n      )\n\n      .replace(\n        \/'\/g,\n        '&#039;'\n      );\n\n  }\n\n\n  \/* ==================================================\n     CLASSE DU BADGE\n  ================================================== *\/\n\n  function getBadgeClass(style) {\n\n    switch (style) {\n\n      case 'feat':\n        return 'pb-feat';\n\n      case 'inv':\n        return 'pb-inv';\n\n      case 'price':\n        return 'pb-price';\n\n      default:\n        return 'pb-sell';\n\n    }\n\n  }\n\n\n  \/* ==================================================\n     BADGES\n  ================================================== *\/\n\n  function createBadges(bien) {\n\n    if (\n      !Array.isArray(bien.badges) ||\n      bien.badges.length === 0\n    ) {\n      return '';\n    }\n\n\n    return bien.badges\n\n      .map(\n        function (badge) {\n\n          return (\n\n            '<span class=\"prop-badge ' +\n\n            getBadgeClass(\n              badge.style\n            ) +\n\n            '\">' +\n\n            escapeHTML(\n              badge.text\n            ) +\n\n            '<\/span>'\n\n          );\n\n        }\n      )\n\n      .join('');\n\n  }\n\n\n  \/* ==================================================\n     CR\u00c9ATION D'UNE CARTE\n  ================================================== *\/\n\n  function createCard(bien) {\n\n\n    var priceSubHTML = '';\n\n\n    if (bien.priceSub) {\n\n      priceSubHTML =\n\n        '<span class=\"prop-price-sub\">' +\n\n        escapeHTML(\n          bien.priceSub\n        ) +\n\n        '<\/span>';\n\n    }\n\n\n    return (\n\n      '<a class=\"prop-card\" href=\"' +\n\n      escapeHTML(\n        bien.link\n      ) +\n\n      '\">' +\n\n\n        '<div class=\"prop-img-wrap\">' +\n\n\n          '<img ' +\n\n            'src=\"' +\n            escapeHTML(\n              bien.image\n            ) +\n            '\" ' +\n\n            'alt=\"' +\n            escapeHTML(\n              bien.alt\n            ) +\n            '\" ' +\n\n            'loading=\"lazy\">' +\n\n\n          '<div class=\"prop-badges\">' +\n\n            createBadges(\n              bien\n            ) +\n\n          '<\/div>' +\n\n\n          '<span class=\"prop-photo-count\">' +\n\n            '\ud83d\udcf7 ' +\n\n            escapeHTML(\n              bien.photos\n            ) +\n\n          '<\/span>' +\n\n\n        '<\/div>' +\n\n\n        '<div class=\"prop-card-body\">' +\n\n\n          '<span class=\"prop-card-type\">' +\n\n            escapeHTML(\n              bien.type\n            ) +\n\n          '<\/span>' +\n\n\n          '<h3 class=\"prop-card-title\">' +\n\n            escapeHTML(\n              bien.title\n            ) +\n\n          '<\/h3>' +\n\n\n          '<p class=\"prop-card-loc\">' +\n\n            '\ud83d\udccd ' +\n\n            escapeHTML(\n              bien.location\n            ) +\n\n          '<\/p>' +\n\n\n          '<div class=\"prop-card-stats\">' +\n\n\n            '<div class=\"prop-stat\">' +\n\n              '<span class=\"prop-stat-val\">' +\n\n                escapeHTML(\n                  bien.surface\n                ) +\n\n              '<\/span>' +\n\n              '&nbsp;m\u00b2' +\n\n            '<\/div>' +\n\n\n            '<div class=\"prop-stat\">' +\n\n              '<span class=\"prop-stat-val\">' +\n\n                escapeHTML(\n                  bien.chambres\n                ) +\n\n              '<\/span>' +\n\n              '&nbsp;ch.' +\n\n            '<\/div>' +\n\n\n            '<div class=\"prop-stat\">' +\n\n              '<span class=\"prop-stat-val\">' +\n\n                escapeHTML(\n                  bien.sdb\n                ) +\n\n              '<\/span>' +\n\n              '&nbsp;sdb.' +\n\n            '<\/div>' +\n\n\n          '<\/div>' +\n\n\n          '<div class=\"prop-card-footer\">' +\n\n\n            '<span class=\"prop-price\">' +\n\n              escapeHTML(\n                bien.price\n              ) +\n\n              priceSubHTML +\n\n            '<\/span>' +\n\n\n            '<span class=\"prop-card-cta\">' +\n\n              'Voir \u2192' +\n\n            '<\/span>' +\n\n\n          '<\/div>' +\n\n\n        '<\/div>' +\n\n\n      '<\/a>'\n\n    );\n\n  }\n\n\n  \/* ==================================================\n     AFFICHAGE\n  ================================================== *\/\n\n  function renderProperties() {\n\n\n    grid.innerHTML =\n\n      biens\n\n        .map(\n          function (bien) {\n\n            return createCard(\n              bien\n            );\n\n          }\n        )\n\n        .join('');\n\n  }\n\n\n  renderProperties();\n\n\n})();\n\n<\/script>\n\n\n<\/body>\n\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2b69cb0f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2b69cb0f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-182bdf04\" data-id=\"182bdf04\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-618bbfbc elementor-widget elementor-widget-html\" data-id=\"618bbfbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>ALF Immobilier \u2013 Villes<\/title>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,600;1,600&family=Inter:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    body { font-family: 'Inter', sans-serif; }\n\n    \/* ===== SECTION ===== *\/\n    #alf-cities {\n      padding: 80px 64px;\n      background: #ffffff;\n      font-family: 'Inter', sans-serif;\n    }\n\n    \/* ===== HEADER ===== *\/\n    #alf-cities .cities-header { margin-bottom: 48px; }\n\n    #alf-cities .cities-eyebrow {\n      display: block;\n      font-size: 11px;\n      letter-spacing: 4px;\n      text-transform: uppercase;\n      color: #E8006F;\n      font-weight: 500;\n      margin-bottom: 14px;\n    }\n\n    #alf-cities .cities-title {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 44px;\n      font-weight: 600;\n      font-style: italic;\n      color: #0d0d0d;\n      line-height: 1.1;\n    }\n\n    #alf-cities .cities-title em {\n      font-style: normal;\n      color: #E8006F;\n    }\n\n    \/* ===== GRILLE ===== *\/\n    #alf-cities .cities-grid {\n      display: grid;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 16px;\n    }\n\n    \/* ===== CARD VILLE ===== *\/\n    #alf-cities .city-card {\n      position: relative;\n      height: 420px;\n      border-radius: 16px;\n      overflow: hidden;\n      cursor: pointer;\n      text-decoration: none;\n      display: block;\n    }\n\n    #alf-cities .city-card img {\n      width: 100%;\n      height: 100%;\n      object-fit: cover;\n      display: block;\n      filter: brightness(0.72);\n      transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), filter 0.4s;\n    }\n\n    #alf-cities .city-card:hover img {\n      transform: scale(1.06);\n      filter: brightness(0.55);\n    }\n\n    \/* D\u00e9grad\u00e9 noir en bas *\/\n    #alf-cities .city-card::before {\n      content: '';\n      position: absolute;\n      inset: 0;\n      background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.0) 55%);\n      z-index: 1;\n      pointer-events: none;\n    }\n\n    \/* Corps *\/\n    #alf-cities .city-card-body {\n      position: absolute;\n      bottom: 0;\n      left: 0;\n      right: 0;\n      z-index: 2;\n      padding: 28px 24px;\n    }\n\n    \/* Badge nombre de biens *\/\n    #alf-cities .city-count {\n      display: inline-flex;\n      align-items: center;\n      gap: 6px;\n      background: #E8006F;\n      color: #fff;\n      font-size: 11px;\n      font-weight: 600;\n      padding: 5px 12px;\n      border-radius: 20px;\n      margin-bottom: 10px;\n      letter-spacing: 0.3px;\n    }\n\n    \/* Nom de la ville *\/\n    #alf-cities .city-name {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 28px;\n      font-weight: 600;\n      color: #fff;\n      line-height: 1.15;\n      display: block;\n      margin-bottom: 14px;\n    }\n\n    \/* CTA au hover *\/\n    #alf-cities .city-cta {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      color: #fff;\n      font-size: 12px;\n      font-weight: 500;\n      letter-spacing: 0.5px;\n      border-bottom: 1px solid rgba(255,255,255,0.50);\n      padding-bottom: 2px;\n      opacity: 0;\n      transform: translateY(8px);\n      transition: opacity 0.3s, transform 0.3s;\n    }\n\n    #alf-cities .city-card:hover .city-cta {\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    \/* ===== RESPONSIVE ===== *\/\n    @media (max-width: 1024px) {\n      #alf-cities { padding: 64px 32px; }\n      #alf-cities .cities-grid { grid-template-columns: repeat(2, 1fr); }\n      #alf-cities .city-card { height: 320px; }\n    }\n\n    @media (max-width: 640px) {\n      #alf-cities { padding: 48px 20px; }\n      #alf-cities .cities-title { font-size: 32px; }\n      #alf-cities .cities-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }\n      #alf-cities .city-card { height: 260px; }\n      #alf-cities .city-name { font-size: 22px; }\n      \/* Sur mobile le CTA est toujours visible *\/\n      #alf-cities .city-cta { opacity: 1; transform: translateY(0); }\n    }\n  <\/style>\n<\/head>\n<body>\n\n<!--\n  =============================================\n  BLOC \"VILLES\"\n  \u00c0 coller dans un widget HTML Elementor.\n\n  POUR CHAQUE VILLE, remplace :\n  - href=\"...\"         \u2192 URL de la page filtr\u00e9e par ville\n  - src=\"...\"          \u2192 URL de la photo de la ville\n  - alt=\"...\"          \u2192 description SEO (important)\n  - city-count         \u2192 nombre de biens actifs\n  - city-name          \u2192 nom de la ville\n\n  POUR AJOUTER UNE VILLE :\n  Duplique un bloc .city-card complet.\n  Pense \u00e0 ajuster grid-template-columns si tu\n  passes \u00e0 5 villes (mettre repeat(5, 1fr)).\n  =============================================\n-->\n\n<section id=\"alf-cities\" aria-labelledby=\"alf-cities-title\">\n\n  <div class=\"cities-header\">\n    <span class=\"cities-eyebrow\">Par ville<\/span>\n    <!-- TITRE \u2014 modifiable -->\n    <h2 class=\"cities-title\" id=\"alf-cities-title\">\n      Trouver un bien dans<br><em>votre ville pr\u00e9f\u00e9r\u00e9e<\/em>\n    <\/h2>\n  <\/div>\n\n  <div class=\"cities-grid\">\n\n    <!-- VILLE 1 : PORTO -->\n    <a class=\"city-card\" href=\"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/vivre-a-porto-immobilier-acheter\/\" aria-label=\"Voir les biens immobiliers \u00e0 Porto\">\n      <img data-recalc-dims=\"1\" decoding=\"async\"\n        src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2019\/07\/vivre-%C3%A0-porto.jpg?w=828\"\n        alt=\"Immobilier \u00e0 Porto \u2013 Agence luso-fran\u00e7aise ALF Immobilier\"\n        loading=\"lazy\"\n      >\n      <div class=\"city-card-body\">\n        <!-- Remplace le chiffre par le nombre de biens r\u00e9els -->\n        <span class=\"city-count\">4 propri\u00e9t\u00e9s<\/span>\n        <span class=\"city-name\">Porto<\/span>\n        <span class=\"city-cta\">Voir les biens \u2192<\/span>\n      <\/div>\n    <\/a>\n\n    <!-- VILLE 2 : AVEIRO -->\n    <a class=\"city-card\" href=\"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/vivre-a-aveiro-immobilier\/\" aria-label=\"Voir les biens immobiliers \u00e0 Aveiro\">\n      <img data-recalc-dims=\"1\" decoding=\"async\"\n        src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2019\/02\/Vivre-a-aveiro.jpg?w=828\"\n        alt=\"Immobilier \u00e0 Aveiro \u2013 Agence luso-fran\u00e7aise ALF Immobilier\"\n        loading=\"lazy\"\n      >\n      <div class=\"city-card-body\">\n        <span class=\"city-count\">2 propri\u00e9t\u00e9s<\/span>\n        <span class=\"city-name\">Aveiro<\/span>\n        <span class=\"city-cta\">Voir les biens \u2192<\/span>\n      <\/div>\n    <\/a>\n\n    <!-- VILLE 3 : VILA NOVA DE GAIA -->\n    <a class=\"city-card\" href=\"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/vivre-a-porto-immobilier-acheter\/\" aria-label=\"Voir les biens immobiliers \u00e0 Vila Nova de Gaia\">\n      <img data-recalc-dims=\"1\" decoding=\"async\"\n        src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2019\/09\/IMG_5640-scaled.webp?w=828\"\n        alt=\"Immobilier \u00e0 Vila Nova de Gaia \u2013 Agence luso-fran\u00e7aise ALF Immobilier\"\n        loading=\"lazy\"\n      >\n      <div class=\"city-card-body\">\n        <span class=\"city-count\">3 propri\u00e9t\u00e9s<\/span>\n        <span class=\"city-name\">Vila Nova<br>de Gaia<\/span>\n        <span class=\"city-cta\">Voir les biens \u2192<\/span>\n      <\/div>\n    <\/a>\n\n    <!-- VILLE 4 : OVAR -->\n    <a class=\"city-card\" href=\"https:\/\/agencelusofrancaiseimmobilier.com\/fr_fr\/vivre-a-aveiro-immobilier\/\" aria-label=\"Voir les biens immobiliers \u00e0 Ovar\">\n      <img data-recalc-dims=\"1\" decoding=\"async\"\n        src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2026\/05\/ville-ovar-scaled.jpeg?w=828&#038;ssl=1\"\n        alt=\"Immobilier \u00e0 Ovar \u2013 Agence luso-fran\u00e7aise ALF Immobilier\"\n        loading=\"lazy\"\n      >\n      <div class=\"city-card-body\">\n        <span class=\"city-count\">3 propri\u00e9t\u00e9s<\/span>\n        <span class=\"city-name\">Ovar<\/span>\n        <span class=\"city-cta\">Voir les biens \u2192<\/span>\n      <\/div>\n    <\/a>\n\n  <\/div>\n\n<\/section>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-75193f8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"75193f8\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0249490\" data-id=\"0249490\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-dbcefda elementor-widget elementor-widget-html\" data-id=\"dbcefda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>ALF Immobilier \u2013 Articles<\/title>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,600;1,600&family=Inter:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    body { font-family: 'Inter', sans-serif; }\n\n    \/* ===== SECTION ===== *\/\n    #alf-articles {\n      padding: 80px 64px;\n      background: #ffffff;\n      font-family: 'Inter', sans-serif;\n    }\n\n    \/* ===== HEADER ===== *\/\n    #alf-articles .articles-header {\n      display: flex;\n      align-items: flex-end;\n      justify-content: space-between;\n      margin-bottom: 48px;\n      gap: 24px;\n    }\n\n    #alf-articles .articles-eyebrow {\n      display: block;\n      font-size: 11px;\n      letter-spacing: 4px;\n      text-transform: uppercase;\n      color: #E8006F;\n      font-weight: 500;\n      margin-bottom: 14px;\n    }\n\n    #alf-articles .articles-title {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 44px;\n      font-weight: 600;\n      font-style: italic;\n      color: #0d0d0d;\n      line-height: 1.1;\n    }\n\n    #alf-articles .articles-title em {\n      font-style: normal;\n      color: #E8006F;\n    }\n\n    #alf-articles .articles-link {\n      font-size: 13px;\n      color: #6b7280;\n      text-decoration: none;\n      border-bottom: 1px solid #e5e7eb;\n      padding-bottom: 2px;\n      white-space: nowrap;\n      transition: color 0.2s, border-color 0.2s;\n    }\n    #alf-articles .articles-link:hover {\n      color: #E8006F;\n      border-color: #E8006F;\n    }\n\n    \/* ===== GRILLE ===== *\/\n    #alf-articles .articles-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 24px;\n    }\n\n    \/* ===== CARD ===== *\/\n    #alf-articles .article-card {\n      background: #fff;\n      border-radius: 16px;\n      overflow: hidden;\n      border: 1px solid #f0f0f0;\n      text-decoration: none;\n      display: block;\n      color: inherit;\n      transition: transform 0.3s, box-shadow 0.3s;\n      cursor: pointer;\n    }\n\n    #alf-articles .article-card:hover {\n      transform: translateY(-6px);\n      box-shadow: 0 16px 48px rgba(0,0,0,0.10);\n    }\n\n    #alf-articles .article-card:hover .article-img img {\n      transform: scale(1.04);\n    }\n\n    #alf-articles .article-card:hover .article-cta {\n      opacity: 1;\n      transform: translateY(0);\n    }\n\n    \/* Image *\/\n    #alf-articles .article-img {\n      height: 220px;\n      overflow: hidden;\n      position: relative;\n    }\n\n    #alf-articles .article-img img {\n      width: 100%;\n      height: 100%;\n      object-fit: cover;\n      display: block;\n      transition: transform 0.5s;\n    }\n\n    \/* Badge cat\u00e9gorie sur l'image *\/\n    #alf-articles .article-cat-img {\n      position: absolute;\n      bottom: 14px;\n      left: 14px;\n      background: #E8006F;\n      color: #fff;\n      font-size: 10px;\n      font-weight: 600;\n      padding: 4px 12px;\n      border-radius: 20px;\n      letter-spacing: 0.5px;\n      text-transform: uppercase;\n    }\n\n    \/* Corps *\/\n    #alf-articles .article-body {\n      padding: 22px 22px 20px;\n    }\n\n    #alf-articles .article-date {\n      display: block;\n      font-size: 11px;\n      color: #9ca3af;\n      font-weight: 400;\n      letter-spacing: 0.5px;\n      margin-bottom: 10px;\n    }\n\n    #alf-articles .article-title {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 20px;\n      font-weight: 600;\n      color: #0d0d0d;\n      line-height: 1.3;\n      margin-bottom: 10px;\n    }\n\n    #alf-articles .article-excerpt {\n      font-size: 13px;\n      font-weight: 300;\n      color: #6b7280;\n      line-height: 1.7;\n      margin-bottom: 18px;\n      display: -webkit-box;\n      -webkit-line-clamp: 2;\n      -webkit-box-orient: vertical;\n      overflow: hidden;\n    }\n\n    #alf-articles .article-footer {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      border-top: 1px solid #f5f5f5;\n      padding-top: 14px;\n    }\n\n    #alf-articles .article-cat {\n      font-size: 11px;\n      font-weight: 500;\n      color: #E8006F;\n      letter-spacing: 1px;\n      text-transform: uppercase;\n    }\n\n    #alf-articles .article-cta {\n      background: #0d0d0d;\n      color: #fff;\n      padding: 7px 14px;\n      border-radius: 6px;\n      font-size: 12px;\n      font-weight: 500;\n      opacity: 0;\n      transform: translateY(4px);\n      transition: opacity 0.25s, transform 0.25s, background 0.2s;\n      display: inline-block;\n    }\n    #alf-articles .article-cta:hover { background: #E8006F; }\n\n    \/* ===== RESPONSIVE ===== *\/\n    @media (max-width: 1024px) {\n      #alf-articles { padding: 64px 32px; }\n      #alf-articles .articles-grid { grid-template-columns: repeat(2, 1fr); }\n    }\n\n    @media (max-width: 640px) {\n      #alf-articles { padding: 48px 20px; }\n      #alf-articles .articles-header { flex-direction: column; align-items: flex-start; }\n      #alf-articles .articles-title { font-size: 32px; }\n      #alf-articles .articles-grid { grid-template-columns: 1fr; }\n      #alf-articles .article-cta { opacity: 1; transform: translateY(0); }\n    }\n  <\/style>\n<\/head>\n<body>\n\n<!--\n  =============================================\n  BLOC \"NOS ARTICLES\"\n  \u00c0 coller dans un widget HTML Elementor.\n\n  POUR CHAQUE ARTICLE, remplace :\n  - href sur .article-card  \u2192 URL de l'article\n  - src=\"...\"               \u2192 URL de l'image\n  - alt=\"...\"               \u2192 description SEO\n  - article-cat-img         \u2192 cat\u00e9gorie sur l'image\n  - article-date            \u2192 date de publication\n  - article-title           \u2192 titre de l'article\n  - article-excerpt         \u2192 extrait (2 lignes max)\n  - article-cat             \u2192 cat\u00e9gorie en bas\n\n  POUR AJOUTER UN ARTICLE :\n  Duplique un bloc .article-card complet.\n  =============================================\n-->\n\n<section id=\"alf-articles\" aria-labelledby=\"alf-articles-title\">\n\n  <div class=\"articles-header\">\n    <div>\n      <span class=\"articles-eyebrow\">Blog & conseils<\/span>\n      <!-- TITRE \u2014 modifiable -->\n      <h2 class=\"articles-title\" id=\"alf-articles-title\">\n        Nos derniers<br><em>articles<\/em>\n      <\/h2>\n    <\/div>\n    <!-- LIEN \u2014 remplace href -->\n    <a href=\"https:\/\/agencelusofrancaiseimmobilier.com\/blog-2\/\" class=\"articles-link\">Voir tous les articles \u2192<\/a>\n  <\/div>\n\n  <div class=\"articles-grid\">\n\n    <!-- ARTICLE 1 -->\n    <a class=\"article-card\" href=\"https:\/\/agencelusofrancaiseimmobilier.com\/programme-regressar-portugal\/\">\n      <div class=\"article-img\">\n        <img data-recalc-dims=\"1\" decoding=\"async\"\n          src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2019\/03\/regressar.png?w=828&#038;ssl=1\"\n          alt=\"Programme Regressar \u2013 ALF Immobilier Portugal\"\n          loading=\"lazy\"\n        >\n        <span class=\"article-cat-img\">Immobilier<\/span>\n      <\/div>\n      <div class=\"article-body\">\n        <span class=\"article-date\">03\/03\/2019<\/span>\n        <h3 class=\"article-title\">Programme Regressar<\/h3>\n        <p class=\"article-excerpt\">D\u00e9couvrez le programme portugais qui facilite le retour des expatri\u00e9s et les avantages fiscaux associ\u00e9s \u00e0 l'achat immobilier.<\/p>\n        <div class=\"article-footer\">\n          <span class=\"article-cat\">Immobilier<\/span>\n          <span class=\"article-cta\">Lire \u2192<\/span>\n        <\/div>\n      <\/div>\n    <\/a>\n\n    <!-- ARTICLE 2 -->\n    <a class=\"article-card\" href=\"https:\/\/agencelusofrancaiseimmobilier.com\/contrat-de-location-au-portugal\/\">\n      <div class=\"article-img\">\n        <img data-recalc-dims=\"1\" decoding=\"async\"\n          src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2019\/05\/location-porto-.jpg?w=828&#038;ssl=1\"\n          alt=\"Contrat de location et IRS au Portugal \u2013 ALF Immobilier\"\n          loading=\"lazy\"\n        >\n        <span class=\"article-cat-img\">Immobilier<\/span>\n      <\/div>\n      <div class=\"article-body\">\n        <span class=\"article-date\">25\/03\/2020<\/span>\n        <h3 class=\"article-title\">Contrat de location, les modifications li\u00e9es \u00e0 l'IRS<\/h3>\n        <p class=\"article-excerpt\">Tout ce que vous devez savoir sur les nouvelles r\u00e8gles fiscales li\u00e9es aux contrats de location au Portugal.<\/p>\n        <div class=\"article-footer\">\n          <span class=\"article-cat\">Immobilier<\/span>\n          <span class=\"article-cta\">Lire \u2192<\/span>\n        <\/div>\n      <\/div>\n    <\/a>\n\n    <!-- ARTICLE 3 -->\n    <a class=\"article-card\" href=\"https:\/\/agencelusofrancaiseimmobilier.com\/assurance-habitation-en-tant-que-locataire-au-portugal\/\">\n      <div class=\"article-img\">\n        <img data-recalc-dims=\"1\" decoding=\"async\"\n          src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2016\/11\/financer-votre-acquisition-a-100-.jpg?w=828&#038;ssl=1\"\n          alt=\"Assurer votre location au Portugal \u2013 ALF Immobilier\"\n          loading=\"lazy\"\n        >\n        <span class=\"article-cat-img\">Immobilier<\/span>\n      <\/div>\n      <div class=\"article-body\">\n        <span class=\"article-date\">19\/03\/2019<\/span>\n        <h3 class=\"article-title\">Assurer votre location au Portugal<\/h3>\n        <p class=\"article-excerpt\">Les assurances indispensables pour prot\u00e9ger votre investissement locatif au Portugal et \u00e9viter les mauvaises surprises.<\/p>\n        <div class=\"article-footer\">\n          <span class=\"article-cat\">Immobilier<\/span>\n          <span class=\"article-cta\">Lire \u2192<\/span>\n        <\/div>\n      <\/div>\n    <\/a>\n\n    <!-- ARTICLE 4 \u2014 duplique ce bloc pour ajouter un article -->\n    <!--\n    <a class=\"article-card\" href=\"URL_ARTICLE_4\">\n      <div class=\"article-img\">\n        <img decoding=\"async\" src=\"URL_PHOTO_ARTICLE_4\" alt=\"Titre article \u2013 ALF Immobilier\" loading=\"lazy\" title=\"\">\n        <span class=\"article-cat-img\">Cat\u00e9gorie<\/span>\n      <\/div>\n      <div class=\"article-body\">\n        <span class=\"article-date\">JJ\/MM\/AAAA<\/span>\n        <h3 class=\"article-title\">Titre de l'article<\/h3>\n        <p class=\"article-excerpt\">Extrait de l'article en deux lignes maximum.<\/p>\n        <div class=\"article-footer\">\n          <span class=\"article-cat\">Cat\u00e9gorie<\/span>\n          <span class=\"article-cta\">Lire \u2192<\/span>\n        <\/div>\n      <\/div>\n    <\/a>\n    -->\n\n  <\/div>\n\n<\/section>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4141c84a elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"4141c84a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-32fa5317\" data-id=\"32fa5317\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6312b3e3 elementor-widget elementor-widget-html\" data-id=\"6312b3e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>ALF Immobilier \u2013 Partenaires<\/title>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,600;1,600&family=Inter:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    body { font-family: 'Inter', sans-serif; }\n\n    \/* ===== SECTION ===== *\/\n    #alf-partners {\n      padding: 80px 64px;\n      background: #f7f7f7;\n      font-family: 'Inter', sans-serif;\n      text-align: center;\n    }\n\n    \/* ===== HEADER ===== *\/\n    #alf-partners .partners-eyebrow {\n      display: block;\n      font-size: 11px;\n      letter-spacing: 4px;\n      text-transform: uppercase;\n      color: #E8006F;\n      font-weight: 500;\n      margin-bottom: 14px;\n    }\n\n    #alf-partners .partners-title {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-size: 44px;\n      font-weight: 600;\n      font-style: italic;\n      color: #0d0d0d;\n      line-height: 1.1;\n      margin-bottom: 14px;\n    }\n\n    #alf-partners .partners-subtitle {\n      font-size: 14px;\n      font-weight: 300;\n      color: #6b7280;\n      line-height: 1.7;\n      max-width: 480px;\n      margin: 0 auto 64px;\n    }\n\n    \/* ===== GRILLE LOGOS ===== *\/\n    #alf-partners .partners-grid {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      gap: 0;\n      flex-wrap: wrap;\n    }\n\n    #alf-partners .partner-item {\n      flex: 1;\n      min-width: 200px;\n      max-width: 300px;\n      padding: 32px 40px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      border-right: 1px solid #ebebeb;\n      transition: background 0.25s;\n    }\n\n    #alf-partners .partner-item:last-child {\n      border-right: none;\n    }\n\n    #alf-partners .partner-item:hover {\n      background: #fff;\n    }\n\n    #alf-partners .partner-item img {\n      max-height: 60px;\n      max-width: 180px;\n      width: auto;\n      display: block;\n      object-fit: contain;\n      filter: grayscale(100%);\n      opacity: 0.55;\n      transition: filter 0.3s, opacity 0.3s;\n    }\n\n    #alf-partners .partner-item:hover img {\n      filter: grayscale(0%);\n      opacity: 1;\n    }\n\n    \/* ===== RESPONSIVE ===== *\/\n    @media (max-width: 900px) {\n      #alf-partners { padding: 64px 32px; }\n      #alf-partners .partners-grid { gap: 0; }\n      #alf-partners .partner-item {\n        flex: 0 0 50%;\n        border-right: none;\n        border-bottom: 1px solid #ebebeb;\n        padding: 28px 32px;\n      }\n      #alf-partners .partner-item:nth-child(odd) {\n        border-right: 1px solid #ebebeb;\n      }\n      #alf-partners .partner-item:last-child {\n        border-bottom: none;\n        border-right: none;\n      }\n    }\n\n    @media (max-width: 480px) {\n      #alf-partners { padding: 48px 20px; }\n      #alf-partners .partners-title { font-size: 32px; }\n      #alf-partners .partner-item { flex: 0 0 100%; border-right: none; }\n      #alf-partners .partner-item:nth-child(odd) { border-right: none; }\n    }\n  <\/style>\n<\/head>\n<body>\n\n<!--\n  =============================================\n  BLOC \"PARTENAIRES\"\n  \u00c0 coller dans un widget HTML Elementor,\n  juste avant le footer.\n\n  POUR CHAQUE PARTENAIRE, remplace :\n  - src=\"...\"   \u2192 URL du logo h\u00e9berg\u00e9 sur ton serveur\n  - alt=\"...\"   \u2192 nom du partenaire (important pour SEO)\n\n  POUR AJOUTER UN PARTENAIRE :\n  Duplique un bloc .partner-item complet.\n\n  POUR SUPPRIMER LA MISE EN GRIS :\n  Retire les deux lignes \"filter: grayscale...\"\n  dans .partner-item img et .partner-item:hover img\n  =============================================\n-->\n\n<section id=\"alf-partners\" aria-labelledby=\"alf-partners-title\">\n\n  <span class=\"partners-eyebrow\">Certifications &amp; affiliations<\/span>\n\n  <!-- TITRE \u2014 modifiable -->\n  <h2 class=\"partners-title\" id=\"alf-partners-title\">Nos partenaires<\/h2>\n\n  <!-- SOUS-TITRE \u2014 modifiable -->\n  <p class=\"partners-subtitle\">\n    Notre agence est affili\u00e9e aux principaux organismes portugais de l'immobilier et de la construction.\n  <\/p>\n\n  <div class=\"partners-grid\">\n\n    <!-- PARTENAIRE 1 : Centros de Arbitragem -->\n    <div class=\"partner-item\">\n      <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\"\n        src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2022\/02\/cicap-25480.webp?resize=180%2C60\"\n        alt=\"Centros de Arbitragem \u2013 partenaire ALF Immobilier\"\n        loading=\"lazy\"\n        width=\"180\"\n        height=\"60\"\n      >\n    <\/div>\n\n    <!-- PARTENAIRE 2 : ASMIP -->\n    <div class=\"partner-item\">\n      <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\"\n        src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2020\/06\/ASMIP-25480.webp?resize=180%2C60\"\n        alt=\"ASMIP \u2013 Associa\u00e7\u00e3o dos Mediadores Imobili\u00e1rios de Portugal\"\n        loading=\"lazy\"\n        width=\"180\"\n        height=\"60\"\n      >\n    <\/div>\n\n    <!-- PARTENAIRE 3 : IMPIC -->\n    <div class=\"partner-item\">\n      <img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\"\n        src=\"https:\/\/i0.wp.com\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2020\/06\/IMPIC-28080.webp?resize=180%2C60\"\n        alt=\"IMPIC \u2013 Instituto dos Mercados P\u00fablicos do Imobili\u00e1rio e da Constru\u00e7\u00e3o\"\n        loading=\"lazy\"\n        width=\"180\"\n        height=\"60\"\n      >\n    <\/div>\n\n    <!-- PARTENAIRE 4 \u2014 duplique ce bloc pour ajouter un partenaire -->\n    <!--\n    <div class=\"partner-item\">\n      <img loading=\"lazy\" decoding=\"async\"\n        src=\"http:\/\/agencelusofrancaiseimmobilier.com\/wp-content\/uploads\/2020\/06\/ASMIP-25480.webp\"\n        alt=\"Nom du partenaire\"\n        loading=\"lazy\"\n        width=\"180\"\n        height=\"60\"\n      >\n    <\/div>\n    -->\n\n  <\/div>\n\n<\/section>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ALF Immobilier \u2013 Hero Agence luso-fran\u00e7aise \u00b7 Portugal Trouvez Votre Bonheur Nous vous accompagnons dans votre projet immobilier au Portugal, de Porto \u00e0 Aveiro. Contactez-nous Voir tous les biens \u2192 01 \/ 00 &#x1f4cd; Surface Chambres Construit Voir le bien \u2192 &#8592; &#8594; ALF Immobilier \u2013 Pourquoi nous choisir Notre diff\u00e9rence Pourquoi choisirALF Immobilier ?&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/home.php","meta":{"footnotes":""},"class_list":["post-130","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/pages\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":52,"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/pages\/130\/revisions"}],"predecessor-version":[{"id":169792,"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/pages\/130\/revisions\/169792"}],"wp:attachment":[{"href":"https:\/\/agencelusofrancaiseimmobilier.com\/en\/wp-json\/wp\/v2\/media?parent=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}